Creación de un disparador para un evento de 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 debe conceder permisos de Amazon SNS a un rol de servicio de CodeDeploy para que se puedan enviar notificaciones para el disparador. Para obtener más información, consulte Concesión de permisos de Amazon SNS a un rol de servicio de 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?.
Creación de un disparador para enviar notificaciones de eventos de CodeDeploy (consola)
Puede utilizar la consola de CodeDeploy para crear disparadores para un evento de CodeDeploy. 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 disparador para un evento de CodeDeploy
-
En la Consola de administración de AWS, abra la consola de AWS CodeDeploy.
Inicie sesión en la Consola de administración de AWS y abra la consola de CodeDeploy en https://console.aws.amazon.com/codedeploy
. nota
Inicie sesión con el mismo usuario que configuró en Introducción a CodeDeploy.
En el panel de navegación, expanda Implementar y, después, elija Aplicaciones.
-
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.
-
En la página Application details (Detalles de la aplicación), elija el grupo de implementaciones en el que desee añadir un disparador.
-
Seleccione Editar.
-
Expanda Advanced (Opciones avanzadas) (opcional).
-
En el área Triggers (Disparadores), elija Create trigger (Crear disparador).
-
En el panel Create deployment trigger (Crear disparador de implementaciones), realice lo siguiente:
-
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-failoTrigger-group-eu-central-instance-stop. -
En Eventos, elija los tipos de evento que desee que disparen el envío de notificaciones por parte del tema de Amazon SNS.
-
En Temas de Amazon SNS, elija el nombre del tema que ha creado para enviar notificaciones para este disparador.
-
Elija Create trigger. CodeDeploy enviará una notificación de prueba para confirmar que ha configurado correctamente el acceso entre CodeDeploy y el tema de 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.
-
-
Seleccione Save changes (Guardar cambios).
Creación de un disparador para enviar notificaciones de eventos de CodeDeploy (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 implementaciones y, a continuación, ejecute el comando create-deployment-group con la opción --cli-input-json.
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.
-
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 -
Añada al resultado el nombre de una aplicación de CodeDeploy existente:
{ "applicationName": "TestApp-us-east-2", "deploymentGroupName": "", "deploymentConfigName": "", "ec2TagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "onPremisesInstanceTagFilters": [ { "Key": "", "Value": "", "Type": "" } ], "autoScalingGroups": [ "" ], "serviceRoleArn": "", "triggerConfigurations": [ { "triggerName": "", "triggerTargetArn": "", "triggerEvents": [ "" ] } ] } -
Proporcione los valores de los parámetros que desea configurar.
Cuando utilice el comando create-deployment-group, debe proporcionar como mínimo los valores de 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 para 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 comoTrigger-group-us-west-3-deploy-failoTrigger-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 (se aplica únicamente a las instancias de sustitución en una implementación “blue/green”)
-
InstanceStart
-
InstanceSuccess
-
InstanceFailure
-
InstanceReady (se aplica únicamente a las instancias de sustitución en una implementación “blue/green”)
-
El siguiente ejemplo de configuración crea un grupo de implementaciones denominado
dep-group-ghi-789-2para una aplicación llamadaTestApp-us-east-2y 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" ] } ] } -
-
Guarde las actualizaciones como un archivo JSON y, a continuación, llame a dicho archivo con la opción
--cli-input-jsoncuando 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.jsonAl 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
Si desea utilizar la AWS CLI para añadir disparadores de eventos de CodeDeploy a un grupo de implementación, cree un archivo JSON para actualizar el grupo de implementación y, a continuación, ejecute el comando update-deployment-group con la opción --cli-input-json.
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.
-
Ejecute el siguiente comando y, a continuación, copie los resultados en un editor de texto sin formato.
aws deploy get-deployment-group --application-nameapplication--deployment-group-namedeployment-group -
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": [] } -
-
En la sección
triggerConfigurations, añada datos para los parámetrostriggerEvents,triggerTargetArnytriggerName. Para obtener información acerca de los parámetros de configuración de disparadores, 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": [] } -
Guarde las actualizaciones como un archivo JSON y, a continuación, ejecute el comando update-deployment-group con la opción
--cli-input-json. Asegúrese de incluir la opción--current-deployment-group-namey especifique el nombre de su archivo JSON enfilename:importante
Asegúrese de incluir
file://antes del nombre de archivo. Es obligatorio en este comando.aws deploy update-deployment-group --current-deployment-group-namedeployment-group-name--cli-input-json file://filename.jsonAl 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.