Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemple : SQS, CloudWatch et SNS
Dans cet exemple, une file d'attente Amazon SQS et une alarme relative à la longueur de la file d'attente sont ajoutées à l'environnement. Les propriétés que vous voyez dans cet exemple correspondent aux propriétés minimales requises que vous devez définir pour chacune de ces ressources. Vous pouvez télécharger l'exemple sur la page SQS, SNS et CloudWatch
Note
Cet exemple crée des ressources AWS, qui peuvent éventuellement vous être facturées. Pour plus d'informations sur la tarification AWS, consultez https://aws.amazon.com/pricing/
Pour utiliser cet exemple, procédez comme suit :
Créez un répertoire
.ebextensions
dans le répertoire de niveau supérieur de votre bundle de fichiers source.Créez deux fichiers de configuration avec l'extension
.config
, puis placez-les dans votre répertoire.ebextensions
. Un fichier de configuration définit les ressources et l'autre fichier de configuration définit les options.Déployez votre application sur Elastic Beanstalk.
YAML utilise une mise en retrait cohérente. Respectez le niveau de retrait lorsque vous remplacez du contenu dans un exemple de fichier de configuration et veillez à ce que votre éditeur de texte utilise des espaces, et non des caractères de tabulation, pour la mise en retrait.
Créez un fichier de configuration (par exemple, sqs.config) qui définit les ressources. Dans cet exemple, nous créons une file d'attente SQS et définissons la propriété VisbilityTimeout
dans la ressource MySQSQueue
. Ensuite, nous créons une rubrique (Topic
) SNS et nous indiquons que l'e-mail doit être envoyé à someone@example.com
lorsque l'alarme se déclenche. Enfin, nous créons une alarme CloudWatch qui se déclenche si la file d'attente dépasse 10 messages. Dans la propriété Dimensions
, nous spécifions le nom de la dimension et la valeur représentant la mesure de la dimension. Nous utilisons Fn::GetAtt
pour renvoyer la valeur de QueueName
à partir de 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"]}
Pour plus d'informations sur les ressources utilisées dans cet exemple de fichier de configuration, consultez les références suivantes :
Créez un fichier de configuration distinct nommé options.config
et définissez les paramètres d'option personnalisés.
option_settings:
"aws:elasticbeanstalk:customoption":
VisibilityTimeout : 30
AlarmEmail : "nobody@example.com"
Avec ces lignes de code, Elastic Beanstalk récupère les valeurs des propriétés VisibilityTimeout et Subscription Endpoint à partir des valeurs VisibilityTimeout et Subscription Endpoint figurant dans un fichier de configuration (options.config dans notre exemple). Celui-ci contient un section option_settings dont la section aws:elasticbeanstalk:customoption inclut une paire nom-valeur qui contient la valeur réelle à utiliser. Dans l'exemple ci-dessus, cela signifie que les valeurs 30 et « nobody@amazon.com » seraient utilisées. Pour plus d'informations sur Fn::GetOptionSetting
, consultez Fonctions.