acme-dns-route53 అనేది ఈ లక్షణాన్ని అమలు చేయడానికి మమ్మల్ని అనుమతించే సాధనం. ఇది లెట్స్ ఎన్క్రిప్ట్ నుండి SSL సర్టిఫికేట్లతో పని చేయవచ్చు, వాటిని Amazon సర్టిఫికేట్ మేనేజర్లో సేవ్ చేయవచ్చు, DNS-53 ఛాలెంజ్ను అమలు చేయడానికి Route01 APIని ఉపయోగించవచ్చు మరియు చివరకు, SNSకి నోటిఫికేషన్లను పుష్ చేయవచ్చు. IN acme-dns-route53 AWS లాంబ్డా లోపల ఉపయోగం కోసం అంతర్నిర్మిత కార్యాచరణ కూడా ఉంది మరియు ఇది మనకు అవసరం.
ఈ వ్యాసం 4 విభాగాలుగా విభజించబడింది:
జిప్ ఫైల్ను సృష్టించడం;
IAM పాత్రను సృష్టించడం;
అమలు చేసే లాంబ్డా ఫంక్షన్ను సృష్టించడం acme-dns-route53;
CloudWatch టైమర్ని సృష్టించడం, అది ఒక ఫంక్షన్ని 2 సార్లు ఒక రోజుకి ట్రిగ్గర్ చేస్తుంది;
గమనిక: మీరు ప్రారంభించడానికి ముందు మీరు ఇన్స్టాల్ చేయాలి గోలాంగ్ 1.9+ и AWS CLI
జిప్ ఫైల్ను సృష్టిస్తోంది
acme-dns-route53 గోలాంగ్లో వ్రాయబడింది మరియు 1.9 కంటే తక్కువ వెర్షన్కు మద్దతు ఇస్తుంది.
మనం బైనరీతో జిప్ ఫైల్ని సృష్టించాలి acme-dns-route53 లోపల. దీన్ని చేయడానికి మీరు ఇన్స్టాల్ చేయాలి acme-dns-route53 ఆదేశాన్ని ఉపయోగించి GitHub రిపోజిటరీ నుండి go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
బైనరీ ఇన్స్టాల్ చేయబడింది $GOPATH/bin డైరెక్టరీ. ఇన్స్టాలేషన్ సమయంలో మేము రెండు మారిన పరిసరాలను పేర్కొన్నామని దయచేసి గమనించండి: GOOS=linux и GOARCH=amd64. Linux OS మరియు amd64 ఆర్కిటెక్చర్కు అనువైన బైనరీని సృష్టించాల్సిన అవసరం ఉందని వారు గో కంపైలర్కి స్పష్టం చేశారు - ఇది AWSలో నడుస్తుంది.
AWS మా ప్రోగ్రామ్ జిప్ ఫైల్లో అమలు చేయబడుతుందని ఆశిస్తోంది, కాబట్టి మనం సృష్టిద్దాం acme-dns-route53.zip ఆర్కైవ్లో కొత్తగా ఇన్స్టాల్ చేయబడిన బైనరీ ఉంటుంది:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
గమనిక: బైనరీ జిప్ ఆర్కైవ్ యొక్క రూట్లో ఉండాలి. దీని కోసం మేము ఉపయోగిస్తాము -j జెండా.
ఇప్పుడు మా జిప్ మారుపేరు విస్తరణకు సిద్ధంగా ఉంది, అవసరమైన హక్కులతో పాత్రను సృష్టించడం మాత్రమే మిగిలి ఉంది.
IAM పాత్రను సృష్టిస్తోంది
దాని అమలు సమయంలో మా లాంబ్డాకి అవసరమైన హక్కులతో మేము IAM పాత్రను సెటప్ చేయాలి.
ఈ విధానాన్ని అంటాం lambda-acme-dns-route53-executor మరియు వెంటనే ఆమెకు ప్రాథమిక పాత్ర ఇవ్వండి AWSLambdaBasicExecutionRole. ఇది AWS CloudWatch సేవకు లాగ్లను అమలు చేయడానికి మరియు వ్రాయడానికి మా లాంబ్డాని అనుమతిస్తుంది.
ముందుగా, మేము మా హక్కులను వివరించే JSON ఫైల్ని సృష్టిస్తాము. ఇది తప్పనిసరిగా లాంబ్డా సేవలను పాత్రను ఉపయోగించడానికి అనుమతిస్తుంది lambda-acme-dns-route53-executor:
ఇప్పుడు ఆదేశాన్ని అమలు చేద్దాం aws iam create-role పాత్రను సృష్టించడానికి:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
గమనిక: విధానాన్ని గుర్తుంచుకోండి ARN (అమెజాన్ రిసోర్స్ పేరు) - మాకు తదుపరి దశల్లో ఇది అవసరం.
పాత్ర lambda-acme-dns-route53-executor సృష్టించబడింది, ఇప్పుడు మనం దాని కోసం అనుమతులను పేర్కొనాలి. దీన్ని చేయడానికి సులభమైన మార్గం ఆదేశాన్ని ఉపయోగించడం aws iam attach-role-policy, ఉత్తీర్ణత విధానం ARN AWSLambdaBasicExecutionRole క్రింది విధంగా:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
అమలు చేసే లాంబ్డా ఫంక్షన్ను సృష్టిస్తోంది acme-dns-route53
హుర్రే! ఇప్పుడు మీరు ఆదేశాన్ని ఉపయోగించి AWSకి మా ఫంక్షన్ని అమలు చేయవచ్చు aws lambda create-function. లాంబ్డా తప్పనిసరిగా కింది ఎన్విరాన్మెంట్ వేరియబుల్స్ ఉపయోగించి కాన్ఫిగర్ చేయబడాలి:
AWS_LAMBDA - స్పష్టం చేస్తుంది acme-dns-route53 AWS లాంబ్డా లోపల అమలు జరుగుతుంది.