acme-dns-route53 bu xususiyatni amalga oshirishga imkon beradigan vositadir. U Let's Encrypt kompaniyasining SSL sertifikatlari bilan ishlashi, ularni Amazon Certificate Manager-da saqlashi, DNS-53 muammosini amalga oshirish uchun Route01 API-dan foydalanishi va nihoyat, SNS-ga bildirishnomalarni yuborishi mumkin. IN acme-dns-route53 AWS Lambda ichida foydalanish uchun o'rnatilgan funksionallik ham mavjud va bu bizga kerak.
Ushbu maqola 4 bo'limga bo'lingan:
zip faylini yaratish;
IAM rolini yaratish;
ishlaydigan lambda funktsiyasini yaratish acme-dns-route53;
funksiyani kuniga 2 marta ishga tushiradigan CloudWatch taymerini yaratish;
Eslatma: Boshlashdan oldin siz o'rnatishingiz kerak GoLang 1.9+ ΠΈ AWS CLI
Zip fayl yaratish
acme-dns-route53 GoLang-da yozilgan va 1.9 dan past bo'lmagan versiyani qo'llab-quvvatlaydi.
Ikkilik bilan zip faylini yaratishimiz kerak acme-dns-route53 ichida. Buning uchun siz o'rnatishingiz kerak acme-dns-route53 buyrug'i yordamida GitHub omboridan go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Ikkilik o'rnatilgan $GOPATH/bin katalog. O'rnatish vaqtida biz ikkita o'zgartirilgan muhitni belgilaganimizni unutmang: GOOS=linux ΠΈ GOARCH=amd64. Ular Go kompilyatoriga Linux OS va amd64 arxitekturasi uchun mos ikkilik fayl yaratish kerakligini tushuntiradi - bu AWS da ishlaydi.
AWS bizning dasturimiz zip faylda joylashtirilishini kutadi, shuning uchun yarataylik acme-dns-route53.zip yangi o'rnatilgan ikkilik faylni o'z ichiga olgan arxiv:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Eslatma: Ikkilik fayl zip arxivining ildizida bo'lishi kerak. Buning uchun biz foydalanamiz -j bayroq.
Endi bizning zip taxallusimiz ishga tushirishga tayyor, qolgani kerakli huquqlarga ega rol yaratishdir.
IAM rolini yaratish
Biz lambda tomonidan talab qilinadigan huquqlarga ega IAM rolini o'rnatishimiz kerak.
Keling, buni siyosat deb ataymiz lambda-acme-dns-route53-executor va darhol unga asosiy rolni bering AWSLambdaBasicExecutionRole. Bu bizning lambda-ga AWS CloudWatch xizmatiga jurnallarni ishga tushirish va yozish imkonini beradi.
Birinchidan, biz huquqlarimizni tavsiflovchi JSON faylini yaratamiz. Bu lambda xizmatlariga roldan foydalanishga imkon beradi lambda-acme-dns-route53-executor:
Endi buyruqni bajaramiz aws iam create-role rol yaratish uchun:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Eslatma: ARN siyosatini eslang (Amazon Resurs nomi) - keyingi bosqichlarda bizga kerak bo'ladi.
Uning ahamiyati lambda-acme-dns-route53-executor yaratilgan, endi buning uchun ruxsatlarni belgilashimiz kerak. Buni qilishning eng oson yo'li buyruqni ishlatishdir aws iam attach-role-policy, ARN siyosatidan o'tish AWSLambdaBasicExecutionRole quyida bayon qilinganidek:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Eslatma: boshqa siyosatlar ro'yxatini topish mumkin shu yerda.
Ishlaydigan lambda funksiyasini yaratish acme-dns-route53
Xayr! Endi siz buyruq yordamida funksiyamizni AWS-ga joylashtirishingiz mumkin aws lambda create-function. Lambda quyidagi muhit o'zgaruvchilari yordamida sozlanishi kerak:
AWS_LAMBDA - aniq qiladi acme-dns-route53 bu ijro AWS Lambda ichida sodir bo'ladi.
DOMAINS β vergul bilan ajratilgan domenlar ro'yxati.