acme-dns-route53 on tööriist, mis võimaldab meil seda funktsiooni rakendada. See võib töötada Let's Encrypti SSL-sertifikaatidega, salvestada need Amazon Certificate Manageri, kasutada DNS-53 väljakutse rakendamiseks Route01 API-t ja lõpuks edastada SNS-ile tõukemärguandeid. IN acme-dns-route53 Samuti on AWS Lambda sees kasutamiseks sisseehitatud funktsionaalsus ja see on see, mida me vajame.
See artikkel on jagatud 4 osaks:
ZIP-faili loomine;
IAM rolli loomine;
töötava lambda funktsiooni loomine acme-dns-route53;
CloudWatchi taimeri loomine, mis käivitab funktsiooni 2 korda päevas;
acme-dns-route53 on kirjutatud GoLangis ja toetab versiooni, mis ei ole väiksem kui 1.9.
Peame looma kahendfailiga ZIP-faili acme-dns-route53 sees. Selleks peate installima acme-dns-route53 GitHubi hoidlast, kasutades käsku go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Binaarfail on installitud $GOPATH/bin kataloog. Pange tähele, et installimise ajal määrasime kaks muudetud keskkonda: GOOS=linux и GOARCH=amd64. Nad teevad Go kompilaatorile selgeks, et see peab looma Linuxi OS-i ja amd64 arhitektuuri jaoks sobiva binaarfaili – see on see, mis töötab AWS-is.
AWS eeldab, et meie programm juurutatakse ZIP-failina, nii et loome acme-dns-route53.zip arhiiv, mis sisaldab äsja installitud kahendfaili:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Märge: Binaarfail peaks asuma ZIP-arhiivi juurtes. Selleks kasutame -j lipp.
Nüüd on meie zip-hüüdnimi kasutuselevõtuks valmis, jääb üle vaid vajalike õigustega roll luua.
IAM-rolli loomine
Peame seadistama IAM-i rolli õigustega, mida meie lambda selle täitmise ajal nõuab.
Nimetagem seda poliitikat lambda-acme-dns-route53-executor ja anna talle kohe põhiroll AWSLambdaBasicExecutionRole. See võimaldab meie lambdal käitada ja kirjutada logisid AWS CloudWatchi teenusesse.
Esiteks loome JSON-faili, mis kirjeldab meie õigusi. See võimaldab sisuliselt lambda-teenustel seda rolli kasutada lambda-acme-dns-route53-executor:
Roll lambda-acme-dns-route53-executor loodud, peame nüüd selle jaoks õigused määrama. Lihtsaim viis seda teha on kasutada käsku aws iam attach-role-policy, läbib poliitika ARN AWSLambdaBasicExecutionRole järgmiselt:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Töötava lambda-funktsiooni loomine acme-dns-route53
Hurraa! Nüüd saate käsu abil juurutada meie funktsiooni AWS-is aws lambda create-function. Lambda tuleb konfigureerida järgmiste keskkonnamuutujate abil:
AWS_LAMBDA - teeb asja selgeks acme-dns-route53 et täitmine toimub AWS Lambda sees.