Esempio: SQS, CloudWatch e SNS - AWS Elastic Beanstalk

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, CloudWatch e SNS

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 in SQS, SNS e CloudWatch.

Nota

Questo esempio crea delle risorse AWS che potrebbero essere a pagamento. Per ulteriori informazioni sui prezzi AWS consulta https://aws.amazon.com/pricing/. Alcuni servizi rientrano nel piano di utilizzo gratuito AWS. Se sei un nuovo cliente, puoi provare questi servizi gratuitamente. Per ulteriori informazioni, consultare https://aws.amazon.com/free/.

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

  1. Crea una directory .ebextensions nella directory di primo livello del bundle di origine.

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

  3. 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 allarme CloudWatch se la dimensione della 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:

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 per le proprietà VisibilityTimeout (Timeout visibilità) e Subscription Endpoint (Endpoint abbonamento) dai valori VisibilityTimeout (Timeout visibilità) e Subscription Endpoint (Endpoint abbonamento) in un file di configurazione (options.config nel nostro esempio) che contiene una sezione option_settings con una sezione aws:elasticbeanstalk:customoption contenente una coppia nome-valore che include 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, consulta Funzioni.