Exemple : SQS, CloudWatch et SNS - AWS Elastic Beanstalk

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/. Certains services font partie du niveau d'offre gratuite d'AWS. Si vous êtes un nouveau client, vous pouvez essayer ces services gratuitement. Pour plus d'informations, consultez https://aws.amazon.com/free/.

Pour utiliser cet exemple, procédez comme suit :

  1. Créez un répertoire .ebextensions dans le répertoire de niveau supérieur de votre bundle de fichiers source.

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

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