Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplo: SQS, CloudWatch y SNS
Este ejemplo añade una cola de Amazon SQS y una alarma sobre la longitud de la cola al entorno. Las propiedades que se muestran en este ejemplo son las propiedades mínimas necesarias que debe establecer para cada uno de estos recursos. Puede descargar el ejemplo en SQS, SNS y CloudWatch
nota
En este ejemplo se crean recursos de AWS, los cuales podrían incurrir gastos. Para obtener más información sobre los precios de AWS, consulte https://aws.amazon.com/pricing/
Para usar este ejemplo, haga lo siguiente:
Cree un directorio
.ebextensions
en el directorio de nivel superior del paquete de código fuente.Cree dos archivos de configuración con la extensión
.config
y colóquelos en el directorio.ebextensions
. En un archivo de configuración se definen los recursos y en el otro, las opciones.Implemente su aplicación en Elastic Beanstalk.
YAML usa la sangría uniforme. Utilice el mismo nivel de sangría cuando sustituya el contenido en el archivo de configuración de ejemplo y asegúrese de que el editor de texto utiliza espacios para la sangría, no tabuladores.
Cree un archivo de configuración (por ejemplo, sqs.config) que defina los recursos. En este ejemplo, crearemos una cola de SQS y definiremos la propiedad VisbilityTimeout
del recurso MySQSQueue
. A continuación, crearemos un Topic
de SNS y especificaremos que se envíe un correo electrónico a someone@example.com
cuando se active la alarma. Por último, crearemos una alarma de CloudWatch si la cola tiene más de 10 mensajes. En la propiedad Dimensions
, especificamos el nombre de la dimensión y el valor que representa la medición de la dimensión. Utilizamos Fn::GetAtt
para devolver el valor de QueueName
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"]}
Para obtener más información sobre los recursos que se utilizan en este archivo de configuración de ejemplo, consulte las siguientes referencias:
Cree un archivo de configuración distinto llamado options.config
y defina la configuración de opciones personalizadas.
option_settings:
"aws:elasticbeanstalk:customoption":
VisibilityTimeout : 30
AlarmEmail : "nobody@example.com"
Estas líneas indican a Elastic Beanstalk que obtenga los valores de las propiedades VisibilityTimeout y Subscription Endpoint de los valores VisibilityTimeout y Subscription Endpoint de un archivo de configuración (options.config en nuestro ejemplo) que contiene una sección option_settings con una sección aws:elasticbeanstalk:customoption que contiene el par de nombre-valor con el valor real que se va a usar. En el ejemplo anterior, este valor es 30 y se usaría "nobody@amazon.com" para los valores. Para obtener más información acerca de Fn::GetOptionSetting
, consulte Funciones.