Exemplo: SQS, CloudWatch e SNS - AWS Elastic Beanstalk

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/. Alguns serviços fazem parte do nível de uso gratuito da AWS. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte https://aws.amazon.com/free/ Para mais informações.

Para usar esse exemplo, faça o seguinte:

  1. Crie um diretório .ebextensions no diretório de nível superior do pacote de origem.

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

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