翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: SQS、CloudWatch、SNS
この例では、Amazon SQS キューおよびキューの深さに対するアラームを、環境に追加します。この例で示されているプロパティは、これらの各リソースに対して設定する必要のある最低限必要なプロパティです。サンプルは、「SQS, SNS, and CloudWatch
注記
この例では、課金対象となる可能性のある AWS リソースを作成します。AWS 料金の詳細については、「https://aws.amazon.com/pricing/
この例を使用するには、以下を実行します。
ソースバンドルの最上位ディレクトリに
.ebextensions
ディレクトリを作成します。拡張子が
.config
の設定ファイルを 2 つ作成し、.ebextensions
ディレクトリに配置します。一方の設定ファイルではリソースが定義され、もう一方の設定ファイルではオプションが定義されます。アプリケーションを Elastic Beanstalk にデプロイします。
YAML は、一貫したインデントに依存します。設定ファイルの例でコンテンツを置き換える際はインデントレベルを一致させ、テキストエディタがインデントにタブ文字ではなくスペースを使用していることを確認します。
リソースを定義する設定ファイル(例: sqs.config)を作成します。この例では、まず SQS キューを作成し、次に VisbilityTimeout
リソースに MySQSQueue
プロパティを定義します。次に、SNS Topic
を作成し、アラームが発生したら someone@example.com
にメールを送信するように指定します。最後に、キューのメッセージが 10 を超えたら CloudWatch アラームを作成します。Dimensions
プロパティでは、ディメンションの名前およびディメンションの測定を表す値を指定します。Fn::GetAtt
を使用して、QueueName
から 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"]}
この設定ファイル例で使用されているリソースの詳細については、以下を参照してください。
options.config
という名前の別の設定ファイルを作成し、カスタムオプションの設定を定義します。
option_settings:
"aws:elasticbeanstalk:customoption":
VisibilityTimeout : 30
AlarmEmail : "nobody@example.com"
これらの行は、Elastic Beanstalk に対し、VisibilityTimeout および Subscription Endpoint プロパティの値を、option_settings セクションと、使用する実際の値を含む名前と値のペアを含む aws:elasticbeanstalk:customoption セクションが含まれている設定ファイル (この例では options.config) の VisibilityTimeout および Subscription Endpoint の値から取得するように指示します。上の例では、これは値として 30 および "nobody@amazon.com" を使用することを意味します。Fn::GetOptionSetting
の詳細については、「関数」を参照してください。