

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempio: SQS e CloudWatch SNS
<a name="customize-environment-resources-sqs"></a>

In questo esempio viene aggiunta una coda Amazon SQS e un allarme sulla profondità della coda all'ambiente. Le proprietà elencate in questo esempio sono le proprietà minime richieste che devono essere impostate per ciascuna di queste risorse. [Puoi scaricare l'esempio da SQS, SNS e. CloudWatch](https://elasticbeanstalk.s3.amazonaws.com/extensions/SNS.config) 

**Nota**  
Questo esempio crea AWS risorse che potrebbero essere addebitate all'utente. Per ulteriori informazioni sui AWS prezzi, consulta[https://aws.amazon.com/pricing/](https://aws.amazon.com/pricing/). Alcuni servizi fanno parte del piano di utilizzo AWS gratuito. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare [https://aws.amazon.com/free/](https://aws.amazon.com/free/).

Per utilizzare questo esempio, esegui le operazioni indicate di seguito:

1. Crea una directory `[.ebextensions](ebextensions.md)` nella directory di primo livello del bundle di origine. 

1. Crea due file di configurazione con estensione `.config`, posizionandoli nella directory `.ebextensions`. Un file di configurazione definisce le risorse, l'altro file di configurazione definisce le opzioni.

1. Distribuzione dell'applicazione in Elastic Beanstalk.

   YAML si basa sulla coerenza del rientro. Utilizza lo stesso livello di rientro quando sostituisci del contenuto in un file di configurazione di esempio e assicurati che il tuo editor di testo utilizzi gli spazi e non le tabulazioni per il rientro.

Crea un file di configurazione (ad esempio, sqs.config) che definisca le risorse. In questo esempio creiamo un coda SQS e definiamo la proprietà `VisbilityTimeout` nella risorsa `MySQSQueue`. Successivamente creiamo un `Topic` SNS e specifichiamo che le e-mail vengano inviate a `someone@example.com` quando viene generato l'allarme. Infine, creiamo un CloudWatch allarme se la coda supera i 10 messaggi. Nella proprietà `Dimensions` specifichiamo il nome della dimensione e il valore che rappresenta la misurazione della dimensione. Utilizziamo `Fn::GetAtt` per restituire il valore di `QueueName` da `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"]}
```

Per ulteriori informazioni sulle risorse utilizzate in questo file di configurazione di esempio, consulta i seguenti riferimenti: 
+ [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)

Crea un file di configurazione separato denominato `options.config` e definisci le impostazioni delle opzioni personalizzate.

```
option_settings:
  "aws:elasticbeanstalk:customoption":
     VisibilityTimeout : 30
     AlarmEmail : "nobody@example.com"
```

Queste righe indicano a Elastic Beanstalk di ottenere i valori **VisibilityTimeout per le proprietà e Subscription Endpoint **VisibilityTimeout dai** valori e** Subscription Endpoint in un file di configurazione (options.config nel nostro esempio) che contiene una sezione option\$1settings **con** una sezione aws:elasticbeanstalk:customoption che contiene una coppia nome-valore che contiene il valore effettivo da utilizzare. Nell'esempio precedente questo significa che per i valori verrebbero utilizzati 30 e "nobody@amazon.com". Per ulteriori informazioni su `Fn::GetOptionSetting`, consultare [Funzioni](ebextensions-functions.md).