

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 e CloudWatch SNS
<a name="customize-environment-resources-sqs"></a>

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. Você pode baixar o exemplo em [SQS, SNS e. CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/SNS.config) 

**nota**  
Este exemplo cria AWS recursos, pelos quais você pode ser cobrado. Para obter mais informações sobre AWS preços, consulte[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alguns serviços fazem parte do nível de uso AWS gratuito. Se for um cliente novo, você pode testar esses serviços gratuitamente. Consulte [https://aws.amazon.com/free/](https://aws.amazon.com/free/) para obter mais informações.

Para usar esse exemplo, faça o seguinte:

1. Crie um diretório `[.ebextensions](ebextensions.md)` no diretório de nível superior do pacote de origem. 

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

1. 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 CloudWatch alarme se a fila aumentar 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: 
+ [AWS::SQS::Queue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues.html)
+ [AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)
+ [AWS::CloudWatch::Alarm](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html)

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 das propriedades e Subscription Endpoint dos valores **VisibilityTimeout e** Subscription Endpoint em um arquivo **VisibilityTimeout de** configuração (options.config em nosso exemplo) que contém uma seção option\_settings **com** uma seção aws:elasticbeanstalk:customoption que contém um par 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 saber mais sobre o `Fn::GetOptionSetting`, consulte [Funções](ebextensions-functions.md).