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/
Per utilizzare questo esempio, esegui le operazioni indicate di seguito:
Crea una directory
.ebextensions
nella directory di primo livello del bundle di origine.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.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.