As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exemplo: SQS, CloudWatch e SNS
Este exemplo adiciona uma fila do Amazon SQS e um alarme no comprimento da fila para o ambiente. As propriedades que você vê neste exemplo são as mínimas necessárias a serem definidas para cada um desses recursos. É possível fazer download do exemplo em SQS, SNS e CloudWatch
nota
Este exemplo cria recursos da AWS, pelos quais você poderia ser cobrado. Para obter mais informações sobre os preços da AWS, consulte https://aws.amazon.com/pricing/
Para usar esse exemplo, faça o seguinte:
Crie um diretório
.ebextensions
no diretório de nível superior do pacote de origem.Crie dois arquivos de configuração com a extensão
.config
e os coloque no diretório.ebextensions
. Um arquivo de configuração define os recursos, e o outro arquivo de configuração define as opções.Implante a aplicação no Elastic Beanstalk.
YAML depende de um recuo consistente. Compare o nível de recuo ao substituir o conteúdo em um arquivo de configuração de exemplo e se confira se o editor de texto usa espaços, e não caracteres de tabulação, como recuo.
Crie um arquivo de configuração (por exemplo, sqs.config) que define os recursos. Neste exemplo, criamos uma fila SQS e definimos a propriedade VisbilityTimeout
no recurso MySQSQueue
. Em seguida, criamos um Topic
SNS e especificamos que o e-mail seja enviado para someone@example.com
quando o alarme for acionado. Por fim, criamos um alarme do CloudWatch se a fila crescer além de 10 mensagens. Na propriedade Dimensions
, especificamos o nome da dimensão e o valor que representa a medida da dimensão. Usamos Fn::GetAtt
para retornar o valor de QueueName
do 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"]}
Para obter mais informações sobre os recursos usados neste exemplo de arquivo de configuração, consulte as seguintes referências:
Crie um arquivo de configuração separado chamado options.config
e defina as opções de configurações personalizadas.
option_settings:
"aws:elasticbeanstalk:customoption":
VisibilityTimeout : 30
AlarmEmail : "nobody@example.com"
Essas linhas instruem o Elastic Beanstalk a obter os valores para as propriedades VisibilityTimeout (Tempo limite de visibilidade) e Subscription Endpoint (Endpoint de assinatura) a partir dos valores de VisibilityTimeout (Tempo limite de visibilidade) e Subscription Endpoint (Endpoint de assinatura) em um arquivo de configuração (options.config em nosso exemplo) que contém uma seção de option_settings com uma seção aws:elasticbeanstalk:customoption contendo um par de nome/valor que contém o valor real a ser usado. No exemplo acima, isso significa que 30 e "nobody@amazon.com" seriam usados para os valores. Para obter mais informações sobre o Fn::GetOptionSetting
, consulte Funções.