Cree un desencadenante para un evento CodeDeploy - AWS CodeDeploy

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.

Cree un desencadenante para un evento CodeDeploy

Puede crear un disparador que publique un tema de Amazon Simple Notification Service (Amazon SNS) para un evento de implementación o de instancia de AWS CodeDeploy . A continuación, cuando se produzca ese evento, todos los suscriptores del tema asociado recibirán notificaciones a través del punto de conexión especificado en el tema, como un mensaje SMS o un mensaje de correo electrónico. Amazon SNS ofrece varios métodos para suscribirse a temas.

Antes de crear un disparador, debe configurar el tema de Amazon SNS al que apuntará el disparador. Para obtener información, consulte Creación de un tema. Cuando cree un tema, recomendamos que le asigne un nombre que identifique su finalidad, con un formato como Topic-group-us-west-3-deploy-fail o Topic-group-project-2-instance-stop.

También debes conceder permisos de Amazon SNS a un rol de CodeDeploy servicio antes de poder enviar las notificaciones para tu activador. Para obtener más información, consulte Conceder permisos de Amazon SNS a un rol de servicio CodeDeploy .

Una vez que haya creado el tema, puede añadir suscriptores. Para obtener información sobre cómo crear, administrar y suscribirse a los temas, consulte ¿Qué es Amazon Simple Notification Service?.

Cree un disparador para enviar notificaciones de CodeDeploy eventos (consola)

Puedes usar la CodeDeploy consola para crear activadores de un CodeDeploy evento. Al finalizar el proceso de configuración, se envía un mensaje de notificación de prueba para garantizar que tanto los permisos como los detalles de los desencadenadores están configurados correctamente.

Para crear un desencadenante para un CodeDeploy evento
  1. En el AWS Management Console, abre la AWS CodeDeploy consola.

  2. Inicie sesión en la CodeDeploy consola AWS Management Console y ábrala en https://console.aws.amazon.com/codedeploy.

    nota

    Inicie sesión con el mismo usuario que configuró en Empezar con CodeDeploy.

  3. En el panel de navegación, expanda Implementar y, después, elija Aplicaciones.

  4. En la página Applications (Aplicaciones), elija el nombre de la aplicación asociada al grupo de implementaciones en el que desee añadir un disparador.

  5. En la página Application details (Detalles de la aplicación), elija el grupo de implementaciones en el que desee añadir un disparador.

  6. Elija Editar.

  7. Expanda Advanced (Opciones avanzadas) (opcional).

  8. En el área Triggers (Disparadores), elija Create trigger (Crear disparador).

  9. En el panel Create deployment trigger (Crear disparador de implementaciones), realice lo siguiente:

    1. En Trigger name (Nombre del disparador), introduzca un nombre para el disparador que facilite la identificación de su finalidad. Recomendamos un formato como Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

    2. En Eventos, elija los tipos de evento que desee que disparen el envío de notificaciones por parte del tema de Amazon SNS.

    3. En Temas de Amazon SNS, elija el nombre del tema que ha creado para enviar notificaciones para este disparador.

    4. Selecciona Crear disparador. CodeDeploy envía una notificación de prueba para confirmar que ha configurado correctamente el acceso entre CodeDeploy y el tema Amazon SNS. En función del tipo de punto de enlace que haya seleccionado para el tema y de si se ha suscrito al tema, recibe un mensaje SMS o de correo electrónico de confirmación.

  10. Elija Guardar cambios.

Crear un disparador para enviar notificaciones de CodeDeploy eventos (CLI)

Puede utilizar la CLI para incluir disparadores al crear un grupo de implementaciones, o bien puede añadir disparadores a un grupo de implementaciones existente.

Para crear un disparador de envío de notificaciones para un nuevo grupo de implementaciones

Cree un archivo JSON para configurar el grupo de implementación y, a continuación, ejecute el create-deployment-groupcomando mediante la --cli-input-json opción.

La forma más sencilla de crear el archivo JSON es utilizar la opción --generate-cli-skeleton para obtener una copia del formato JSON y, a continuación, proporcionar los valores necesarios en un editor de texto sin formato.

  1. Ejecute el siguiente comando y, a continuación, copie los resultados en un editor de texto sin formato.

    aws deploy create-deployment-group --generate-cli-skeleton
  2. Agrega el nombre de una CodeDeploy aplicación existente a la salida:

    { "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] }
  3. Proporcione los valores de los parámetros que desea configurar.

    Al utilizar el create-deployment-groupcomando, debe proporcionar, como mínimo, valores para los siguientes parámetros:

    • applicationName: el nombre de una aplicación ya creada en su cuenta.

    • deploymentGroupName: un nombre para el grupo de implementaciones que va a crear.

    • serviceRoleArn: El ARN de un rol de servicio existente configurado CodeDeploy en su cuenta. Para obtener más información, consulte Paso 2: Crear un rol de servicio para CodeDeploy.

    En la sección triggerConfigurations, proporcione valores para los siguientes parámetros:

    • triggerName: el nombre que desea asignar al disparador para que pueda identificarlo fácilmente. Recomendamos un formato como Trigger-group-us-west-3-deploy-fail o Trigger-group-eu-central-instance-stop.

    • triggerTargetArn: el ARN del tema de Amazon SNS que ha creado para asociar al disparador, en este formato: arn:aws:sns:us-east-2:444455556666:NewTestTopic.

    • triggerEvents: el tipo de evento o eventos para los que desea disparar notificaciones. Puede especificar uno o varios tipos de eventos, separando con comas los distintos nombres de tipo de evento (por ejemplo, "triggerEvents":["DeploymentSuccess","DeploymentFailure","InstanceFailure"]). Cuando añade más de un tipo de evento, las notificaciones de todos esos tipos se envían al tema especificado, en lugar de enviarse a un tema diferente para cada una de ellas. Puede elegir entre los siguientes tipos de evento:

      • DeploymentStart

      • DeploymentSuccess

      • DeploymentFailure

      • DeploymentStop

      • DeploymentRollback

      • DeploymentReady (Solo se aplica a las instancias de reemplazo en una implementación azul/verde)

      • InstanceStart

      • InstanceSuccess

      • InstanceFailure

      • InstanceReady (Solo se aplica a las instancias de reemplazo en una implementación azul/verde)

    El siguiente ejemplo de configuración crea un grupo de implementaciones denominado dep-group-ghi-789-2 para una aplicación llamada TestApp-us-east-2 y un disparador que provoca el envío de notificaciones siempre que una implementación comience o se realice correctamente o cuando se produzca un error en ella:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "deploymentGroupName": "dep-group-ghi-789-2", "ec2TagFilters": [ { "Key": "Name", "Value": "Project-ABC", "Type": "KEY_AND_VALUE" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "triggerConfigurations": [ { "triggerName": "Trigger-group-us-east-2", "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ] } ] }
  4. Guarde las actualizaciones como un archivo JSON y, a continuación, llame a dicho archivo con la opción --cli-input-json cuando ejecute el comando create-deployment-group:

    importante

    Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

    aws deploy create-deployment-group --cli-input-json file://filename.json

    Al finalizar el proceso de creación, recibe un mensaje de notificación de prueba que indica que tanto los permisos como los detalles de los disparadores están configurados correctamente.

Para crear un disparador de envío de notificaciones para un grupo de implementaciones existente

Para usar el AWS CLI para añadir activadores de CodeDeploy eventos a un grupo de despliegues existente, crea un archivo JSON para actualizar el grupo de despliegues y, a continuación, ejecuta el update-deployment-groupcomando mediante la --cli-input-json opción.

La forma más sencilla de crear el archivo JSON es ejecutar el comando get-deployment-group para obtener una copia de la configuración del grupo de implementaciones, en formato JSON y, a continuación, actualizar los valores de los parámetros en un editor de texto sin formato.

  1. Ejecute el siguiente comando y, a continuación, copie los resultados en un editor de texto sin formato.

    aws deploy get-deployment-group --application-name application --deployment-group-name deployment-group
  2. Elimine lo siguiente del resultado:

    • Al principio del resultado, elimine { "deploymentGroupInfo":.

    • Al final del resultado, elimine }.

    • Elimine la fila que contiene deploymentGroupId.

    • Elimine la fila que contiene deploymentGroupName.

    El contenido de su archivo de texto debe tener ahora un aspecto similar al siguiente:

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  3. En la sección triggerConfigurations, añada datos para los parámetros triggerEvents, triggerTargetArn y triggerName. Para obtener información sobre los parámetros de configuración de los activadores, consulte TriggerConfig.

    El contenido de su archivo de texto debe tener ahora un aspecto similar al siguiente. Este código provoca el envío de notificaciones siempre que una implementación comience o se realice correctamente o cuando se produzca un error en ella.

    { "applicationName": "TestApp-us-east-2", "deploymentConfigName": "CodeDeployDefault.OneAtATime", "autoScalingGroups": [], "ec2TagFilters": [ { "Type": "KEY_AND_VALUE", "Value": "Project-ABC", "Key": "Name" } ], "triggerConfigurations": [ { "triggerEvents": [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure" ], "triggerTargetArn": "arn:aws:sns:us-east-2:444455556666:us-east-deployments", "triggerName": "Trigger-group-us-east-2" } ], "serviceRoleArn": "arn:aws:iam::444455556666:role/AnyCompany-service-role", "onPremisesInstanceTagFilters": [] }
  4. Guarde las actualizaciones como un archivo JSON y, a continuación, ejecute el update-deployment-groupcomando mediante la --cli-input-json opción. Asegúrese de incluir la opción --current-deployment-group-name y especifique el nombre de su archivo JSON en filename:

    importante

    Asegúrese de incluir file:// antes del nombre de archivo. Es obligatorio en este comando.

    aws deploy update-deployment-group --current-deployment-group-name deployment-group-name --cli-input-json file://filename.json

    Al finalizar el proceso de creación, recibe un mensaje de notificación de prueba que indica que tanto los permisos como los detalles de los disparadores están configurados correctamente.