Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh: SQS,CloudWatch, dan SNS
Contoh ini menambahkan antrean Amazon SQS dan alarm pada kedalaman antrean lingkungan. Properti yang Anda lihat dalam contoh ini adalah properti minimum diperlukan yang harus Anda tetapkan untuk masing-masing sumber daya ini. Anda dapat mengunduh contoh tersebut diSQS, SNS, danCloudWatch
catatan
Contoh ini membuat sumber daya AWS, yang mungkin akan dikenakan biaya. Untuk informasi selengkapnya tentang harga AWS, lihat https://aws.amazon.com/pricing/
Untuk menggunakan contoh ini, lakukan hal berikut:
Buat direktori
.ebextensions
di tingkat atas dari paket sumber Anda.Buat dua file konfigurasi dengan ekstensi
.config
dan tempatkan mereka di direktori.ebextensions
Anda. Satu file konfigurasi menentukan sumber daya, dan file konfigurasi lainnya menentukan pilihan.Terapkan aplikasi Anda ke Elastic Beanstalk.
YAML bergantung pada indentasi yang konsisten. Cocokkan tingkat indentasi saat mengganti konten dalam file konfigurasi contoh dan pastikan bahwa editor teks Anda menggunakan spasi, bukan karakter tab, untuk indentasi.
Buat file konfigurasi (misalnya, sqs.config) yang mendefinisikan sumber daya. Pada contoh ini, kami membuat antrean SQS dan menentukan properti VisbilityTimeout
di sumber daya MySQSQueue
. Selanjutnya, kami membuat SNS Topic
dan menetapkan bahwa email akan dikirim ke someone@example.com
saat alarm diaktifkan. Akhirnya, kita membuatCloudWatchalarm jika antrean melebihi 10 pesan. Di properti Dimensions
tersebut, kami menentukan nama dimensi dan nilai yang mewakili pengukuran dimensi. Kami menggunakan Fn::GetAtt
untuk mengembalikan nilai QueueName
dari MySQSQueue
.
#This sample requires you to create a separate configuration file to define the custom options for the SNS topic and SQS queue.
Resources:
MySQSQueue:
Type: AWS::SQS::Queue
Properties:
VisibilityTimeout:
Fn::GetOptionSetting:
OptionName: VisibilityTimeout
DefaultValue: 30
AlarmTopic:
Type: AWS::SNS::Topic
Properties:
Subscription:
- Endpoint:
Fn::GetOptionSetting:
OptionName: AlarmEmail
DefaultValue: "nobody@amazon.com"
Protocol: email
QueueDepthAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmDescription: "Alarm if queue depth grows beyond 10 messages"
Namespace: "AWS/SQS"
MetricName: ApproximateNumberOfMessagesVisible
Dimensions:
- Name: QueueName
Value : { "Fn::GetAtt" : [ "MySQSQueue", "QueueName"] }
Statistic: Sum
Period: 300
EvaluationPeriods: 1
Threshold: 10
ComparisonOperator: GreaterThanThreshold
AlarmActions:
- Ref: AlarmTopic
InsufficientDataActions:
- Ref: AlarmTopic
Outputs :
QueueURL:
Description : "URL of newly created SQS Queue"
Value : { Ref : "MySQSQueue" }
QueueARN :
Description : "ARN of newly created SQS Queue"
Value : { "Fn::GetAtt" : [ "MySQSQueue", "Arn"]}
QueueName :
Description : "Name newly created SQS Queue"
Value : { "Fn::GetAtt" : [ "MySQSQueue", "QueueName"]}
Untuk informasi selengkapnya tentang sumber daya yang digunakan dalam contoh file konfigurasi ini, lihat referensi berikut ini:
Buat file konfigurasi terpisah yang disebut options.config
dan tentukan pengaturan opsi khusus.
option_settings:
"aws:elasticbeanstalk:customoption":
VisibilityTimeout : 30
AlarmEmail : "nobody@example.com"
Garis-garis ini memberi tahu Elastic Beanstalk untuk mendapatkan nilai untukVisibilityTimeoutdan Endpoint langganansifat dariVisibilityTimeoutdan Endpoint langganannilai dalam file konfigurasi (options.config dalam contoh kita) yang berisi bagian option_settings denganaws:elasticbeanstalk: customoptionbagian yang berisi pasangan nama-nilai yang berisi nilai aktual untuk digunakan. Pada contoh di atas, ini berarti 30 dan "nobody@amazon.com" akan digunakan untuk nilai tersebut. Untuk informasi selengkapnya tentang Fn::GetOptionSetting
, lihat Fungsi.