acme-dns-route53 ezaugarri hau ezartzeko aukera emango digun tresna da. Let's Encrypt-eko SSL ziurtagiriekin lan egin dezake, Amazon Certificate Manager-en gorde, Route53 APIa erabil dezake DNS-01 erronka ezartzeko eta, azkenik, SNSra bidalitako jakinarazpenak. IN acme-dns-route53 AWS Lambda barruan erabiltzeko funtzionaltasun integratua ere badago, eta hau da behar duguna.
Artikulu hau 4 ataletan banatuta dago:
zip fitxategi bat sortzea;
IAM rola sortzea;
exekutatzen den lambda funtzio bat sortuz acme-dns-route53;
Egunean 2 aldiz funtzio bat abiarazten duen CloudWatch tenporizadore bat sortzea;
acme-dns-route53 GoLang-en idatzita dago eta 1.9 baino txikiagoa ez den bertsioa onartzen du.
Zip fitxategi bat sortu behar dugu bitar batekin acme-dns-route53 barruan. Horretarako instalatu behar duzu acme-dns-route53 GitHub biltegitik komandoa erabiliz go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Binarioa instalatuta dago $GOPATH/bin direktorioa. Kontuan izan instalazioan zehar aldatutako bi ingurune zehaztu ditugula: GOOS=linux ΠΈ GOARCH=amd64. Argi uzten diote Go konpilatzaileari Linux OS eta amd64 arkitekturarako egokia den bitar bat sortu behar duela - hau da AWS-en exekutatzen dena.
AWS-k gure programa zip fitxategi batean zabaltzea espero du, beraz, sor dezagun acme-dns-route53.zip Instalatutako bitar berria edukiko duen artxiboa:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Ohar: Bitarra zip artxiboaren erroan egon behar da. Horretarako erabiltzen dugu -j bandera.
Orain gure zip ezizena zabaltzeko prest dago, behar diren eskubideekin rol bat sortzea besterik ez da geratzen.
IAM rola sortzea
IAM rol bat ezarri behar dugu gure lambdak exekutatzean eskatzen dituen eskubideekin.
Dei diezaiogun politika honi lambda-acme-dns-route53-executor eta berehala eman zion oinarrizko rola AWSLambdaBasicExecutionRole. Honek gure lambda AWS CloudWatch zerbitzuan erregistroak exekutatu eta idazteko aukera emango du.
Lehenik eta behin, gure eskubideak deskribatzen dituen JSON fitxategi bat sortzen dugu. Honek funtsean lambda zerbitzuei rola erabiltzeko aukera emango die lambda-acme-dns-route53-executor:
Orain exekutatu dezagun komandoa aws iam create-role rol bat sortzeko:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Ohar: gogoratu ARN politika (Amazon Resource Name) - hurrengo urratsetan beharko dugu.
Rola lambda-acme-dns-route53-executor sortu, orain horretarako baimenak zehaztu behar ditugu. Horretarako modurik errazena komandoa erabiltzea da aws iam attach-role-policy, ARN politika pasatzea AWSLambdaBasicExecutionRole honela:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Ohar: beste politika batzuekin zerrenda bat aurki daiteke Hemen.
Exekutatzen den lambda funtzio bat sortzea acme-dns-route53
Aupa! Orain gure funtzioa AWSra inplementa dezakezu komandoa erabiliz aws lambda create-function. Lambda ingurune-aldagai hauek erabiliz konfiguratu behar da:
AWS_LAMBDA - argi uzten du acme-dns-route53 exekuzio hori AWS Lambda barruan gertatzen da.