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.