acme-dns-route53 amûrek e ku dê destûrê bide me ku em vê taybetmendiyê bicîh bînin. Ew dikare bi sertîfîkayên SSL-ê ji Let's Encrypt bixebite, wan di Gerînendeyê Sertîfîkaya Amazonê de hilîne, API-ya Route53 bikar bîne da ku dijwariya DNS-01 bicîh bîne, û, di dawiyê de, agahdariyên SNS-ê bişopîne. LI acme-dns-route53 Ji bo karanîna di hundurê AWS Lambda de fonksiyonek çêkirî jî heye, û ya ku em hewce ne ev e.
Ev gotar li ser 4 beşan dabeş dibe:
afirandina pelê zip;
afirandina rola IAM;
afirandina fonksiyonek lambda ku dimeşîne acme-dns-route53;
afirandina demjimêrek CloudWatch ku rojê 2 caran fonksiyonek vedike;
Not: Berî ku hûn dest pê bikin, hûn hewce ne ku saz bikin GoLang 1.9+ и AWS CLI
Afirandina pelê zip
acme-dns-route53 di GoLang de hatî nivîsandin û guhertoya ku ji 1.9-ê kêmtir nîne piştgirî dike.
Pêdivî ye ku em pelek zip bi binaryek çêbikin acme-dns-route53 nav. Ji bo vê yekê hûn hewce ne ku saz bikin acme-dns-route53 ji depoya GitHub bi karanîna fermanê go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Binarya tê sazkirin $GOPATH/bin directory. Ji kerema xwe not bikin ku di dema sazkirinê de me du hawîrdorên guherbar diyar kirin: GOOS=linux и GOARCH=amd64. Ew ji berhevkarê Go re eşkere dikin ku ew hewce ye ku ji bo Linux OS û mîmariya amd64 binaryek minasib biafirîne - ya ku li ser AWS-ê dimeşîne ev e.
AWS hêvî dike ku bernameya me di pelek zip de were bicîh kirin, ji ber vê yekê em biafirînin acme-dns-route53.zip arşîva ku dê binarya ku nû hatî saz kirin dihewîne:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Not: Divê binary di koka arşîva zip de be. Ji bo vê yekê em bikar tînin -j al.
Naha paşnavê meya zip ji bo bicîhkirinê amade ye, ya ku dimîne ev e ku em bi mafên pêwîst rolek biafirînin.
Afirandina rola IAM
Pêdivî ye ku em bi mafên ku lambda me di dema darvekirina wê de hewce dike, rolek IAM saz bikin.
Em ji vê siyasetê re bibêjin lambda-acme-dns-route53-executor û yekser roleke bingehîn bide wê AWSLambdaBasicExecutionRole. Ev ê bihêle ku lambda me bixebite û têketinên karûbarê AWS CloudWatch binivîsîne.
Pêşîn, em pelek JSON ku mafên me vedibêje diafirîne. Ev ê bi bingehîn rê bide karûbarên lambda ku rola xwe bikar bînin lambda-acme-dns-route53-executor:
Naha em fermanê bimeşînin aws iam create-role ji bo afirandina rolek:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Not: Siyaseta ARN (Navê Çavkaniyê ya Amazon) bi bîr bîne - em ê di gavên pêş de jê re hewce bikin.
Rola lambda-acme-dns-route53-executor afirandin, naha divê em ji bo wê destûrên diyar bikin. Rêya herî hêsan a kirina vê yekê karanîna fermanê ye aws iam attach-role-policybi derbaskirina siyaseta ARN AWSLambdaBasicExecutionRole wiha ye:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Not: lîsteyek bi polîtîkayên din dikare were dîtin vir.
Afirandina fonksiyonek lambda ku dimeşîne acme-dns-route53
Hooray! Naha hûn dikarin bi karanîna fermanê fonksiyona me li AWS bicîh bikin aws lambda create-function. Pêdivî ye ku lambda bi karanîna guhêrbarên hawîrdorê yên jêrîn were mîheng kirin:
AWS_LAMBDA - eşkere dike acme-dns-route53 ew darvekirin di hundurê AWS Lambda de pêk tê.
DOMAINS - navnîşek domên ku bi koman têne veqetandin.