Menambahkan dan menyesuaikan sumber daya lingkungan Elastic Beanstalk - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menambahkan dan menyesuaikan sumber daya lingkungan Elastic Beanstalk

Anda mungkin ingin menyesuaikan sumber daya lingkungan Anda yang merupakan bagian dari lingkungan Elastic Beanstalk Anda. Misalnya, Anda mungkin ingin menambahkan antrean Amazon SQS dan alarm pada kedalaman antrean, atau Anda mungkin ingin menambahkan Amazon SQSElastiCachekluster. Anda dapat dengan mudah menyesuaikan lingkungan Anda pada saat yang sama saat Anda men-deploy versi aplikasi Anda dengan memasukkan file konfigurasi dengan paket sumber Anda.

Anda dapat menggunakan kunci Resources di file konfigurasi untuk membuat dan menyesuaikan sumber daya AWS di lingkungan Anda. Sumber daya yang ditentukan dalam file konfigurasi ditambahkan ke templat AWS CloudFormation yang digunakan untuk meluncurkan lingkungan Anda. Semua tipe sumber daya AWS CloudFormation didukung.

catatan

Kapan pun Anda menambahkan sumber daya yang tidak dikelola oleh Elastic Beanstalk, pastikan untuk menambahkan kebijakan pengguna dengan izin yang sesuai ke pengguna (IAM) AWS Identity and Access Management Anda. Kebijakan pengguna terkelola yang disediakan Elastic Beanstalk hanya mencakup izin ke sumber daya terkelola Elastic Beanstalk.

Sebagai contoh, file konfigurasi berikut menambahkan hook siklus hidup Auto Scaling ke grup Auto Scaling default yang dibuat oleh Elastic Beanstalk:

~/my-app/.ebextensions/as-hook.config

Resources: hookrole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: { "Version" : "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "autoscaling.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] } Policies: [ { "PolicyName": "SNS", "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Resource": "*", "Action": [ "sqs:SendMessage", "sqs:GetQueueUrl", "sns:Publish" ] } ] } } ] hooktopic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: "my-email@example.com" Protocol: email lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" } LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING NotificationTargetARN: { "Ref" : "hooktopic" } RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }

Contoh ini mendefinisikan tiga sumber daya, hookrole, hooktopic dan lifecyclehook. Dua sumber daya pertama adalah IAM role, yang memberikan Amazon EC2 Auto Scaling izin untuk mempublikasikan pesan ke Amazon SNS, dan topik SNS, yang menyampaikan pesan dari grup Auto Scaling ke alamat email. Elastic Beanstalk membuat sumber daya ini dengan sifat dan jenis yang ditentukan.

Sumber daya akhir, lifecyclehook, adalah hook siklus hidup itu sendiri:

lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" } LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING NotificationTargetARN: { "Ref" : "hooktopic" } RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }

Definisi hook siklus hidup menggunakan dua fungsi untuk mengisi nilai properti hook. { "Ref" : "AWSEBAutoScalingGroup" } mengambil nama grup Auto Scaling yang dibuat oleh Elastic Beanstalk untuk lingkungan. AWSEBAutoScalingGroup adalah salah satu nama sumber daya standar disediakan oleh Elastic Beanstalk.

Untuk AWS::IAM::Role, Ref hanya mengembalikan nama peran, bukan ARN. Untuk mendapatkan ARN untuk parameter RoleARN, Anda menggunakan fungsi intrinsik lain, Fn::GetAtt sebagai gantinya, yang bisa mendapatkan atribut apa pun dari sumber daya. RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] } mendapatkan atribut Arn dari sumber daya hookrole.

{ "Ref" : "hooktopic" } mendapatkan ARN dari topik Amazon SNS yang dibuat sebelumnya dalam file konfigurasi. Nilai yang dikembalikan Ref bervariasi per tipe sumber daya dan dapat ditemukan di topik Panduan Pengguna AWS CloudFormation untuk tipe sumber daya AWS::SNS::Topic.