Contoh: SQS,CloudWatch, dan SNS - AWS Elastic Beanstalk

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/. Beberapa layanan merupakan bagian dari Tingkat Penggunaan Gratis AWS. Jika Anda adalah pelanggan baru, Anda dapat menguji layanan ini secara gratis. Lihat https://aws.amazon.com/free/ untuk informasi selengkapnya.

Untuk menggunakan contoh ini, lakukan hal berikut:

  1. Buat direktori .ebextensions di tingkat atas dari paket sumber Anda.

  2. 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.

  3. 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.