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 de creación de notificaciones para CodeBuild
Amazon CloudWatch Events tiene soporte integrado para AWS CodeBuild. CloudWatch Los eventos son una secuencia de eventos del sistema que describen los cambios en sus AWS recursos. Con CloudWatch Events, se escriben reglas declarativas para asociar los eventos de interés con las acciones automatizadas que se van a llevar a cabo. En este ejemplo, se utilizan Amazon CloudWatch Events y Amazon Simple Notification Service (AmazonSNS) para enviar notificaciones de compilación a los suscriptores siempre que las compilaciones se realicen correctamente, fallen, pasen de una fase de creación a otra o cualquier combinación de estos eventos.
importante
Si ejecutas este ejemplo, es posible que se produzcan cargos en tu AWS cuenta. Estos incluyen posibles cargos por CodeBuild y por AWS los recursos y acciones relacionados con Amazon CloudWatch y AmazonSNS. Para obtener más información, consulta CodeBuild precios
Temas
Ejecute el ejemplo de notificaciones de compilación
Utilice el siguiente procedimiento para ejecutar el ejemplo de notificaciones de compilación.
Para ejecutar este ejemplo
-
Si ya tienes un tema configurado y al SNS que te has suscrito en Amazon y quieres usarlo en este ejemplo, continúa con el paso 4. De lo contrario, si utilizas un IAM usuario en lugar de una cuenta AWS raíz o un usuario administrador para trabajar con AmazonSNS, añade la siguiente declaración (entre
### BEGIN ADDING STATEMENT HERE ###
y### END ADDING STATEMENT HERE ###
) al usuario (o IAM grupo al que está asociado el usuario). No se recomienda usar una cuenta AWS root. Esta declaración permite ver, crear, suscribirse y probar el envío de notificaciones a temas de AmazonSNS. Los puntos suspensivos (...
) se usan por motivos de brevedad y para ayudarle a encontrar el lugar donde debe añadir la instrucción. No elimine ninguna instrucción ni incluya estos puntos suspensivos en la política existente.{ "Statement": [
### BEGIN ADDING STATEMENT HERE ###
{ "Action": [ "sns:CreateTopic", "sns:GetTopicAttributes", "sns:List*", "sns:Publish", "sns:SetTopicAttributes", "sns:Subscribe" ], "Resource": "*", "Effect": "Allow" },### END ADDING STATEMENT HERE ###
... ], "Version": "2012-10-17" }nota
La IAM entidad que modifique esta política debe tener permiso IAM para modificarlas.
Para obtener más información, consulte Edición de políticas administradas por el cliente o consulte la sección «Para editar o eliminar una política integrada para un grupo, usuario o rol» en Cómo trabajar con políticas integradas (consola) de la IAM Guía del usuario.
-
Crea o identifica un tema en AmazonSNS. AWS CodeBuild usa CloudWatch Events para enviar notificaciones de compilación sobre este tema a través de AmazonSNS.
Para crear un tema:
-
Abre la SNS consola de Amazon en https://console.aws.amazon.com/sns
. -
Elija Crear nuevo tema.
-
En el cuadro de diálogo Create new topic (Crear un nuevo tema), en Topic name (Nombre del tema), escriba un nombre para el tema (por ejemplo,
CodeBuildDemoTopic
). Si elige otro nombre, sustitúyalo en todo este ejemplo. -
Elija Crear nuevo tema.
-
En la CodeBuildDemoTopic página Detalles del tema:, copia el valor del tema ARN. Necesitará este valor para el siguiente paso.
Para obtener más información, consulta Crear un tema en la Guía para SNS desarrolladores de Amazon.
-
-
Suscriba a uno o varios destinatarios al tema para que reciban notificaciones por correo electrónico.
Para suscribir a un destinatario a un tema:
-
Con la SNS consola de Amazon abierta desde el paso anterior, en el panel de navegación, selecciona Suscripciones y, a continuación, selecciona Crear suscripción.
-
En Crear suscripción, en Tema ARN, pega el tema ARN que copiaste del paso anterior.
-
En Protocolo, elija Correo electrónico.
-
En Punto de conexión, escriba la dirección de correo electrónico completa del destinatario.
-
Elija Create Subscription.
-
Amazon SNS envía un correo electrónico de confirmación de suscripción al destinatario. Para empezar a recibir notificaciones por correo electrónico, el destinatario debe elegir el enlace Confirm subscription en el mensaje de confirmación de la suscripción. Cuando el destinatario haga clic en el enlace, si se ha suscrito correctamente, Amazon SNS muestra un mensaje de confirmación en el navegador web del destinatario.
Para obtener más información, consulta Suscribirse a un tema de la Guía para SNS desarrolladores de Amazon.
-
-
Si utiliza un usuario en lugar de una cuenta AWS raíz o un usuario administrador para trabajar con CloudWatch Events, añada la siguiente declaración (entre
### BEGIN ADDING STATEMENT HERE ###
y### END ADDING STATEMENT HERE ###
) al usuario (o IAM grupo al que está asociado el usuario). No se recomienda usar una cuenta AWS root. Esta declaración se utiliza para permitir al usuario trabajar con CloudWatch eventos. Los puntos suspensivos (...
) se usan por motivos de brevedad y para ayudarle a encontrar el lugar donde debe añadir la instrucción. No elimine ninguna instrucción ni incluya estos puntos suspensivos en la política existente.{ "Statement": [
### BEGIN ADDING STATEMENT HERE ###
{ "Action": [ "events:*", "iam:PassRole" ], "Resource": "*", "Effect": "Allow" },### END ADDING STATEMENT HERE ###
... ], "Version": "2012-10-17" }nota
La IAM entidad que modifique esta política debe tener permiso IAM para modificarlas.
Para obtener más información, consulte Edición de políticas administradas por el cliente o consulte la sección «Para editar o eliminar una política integrada para un grupo, usuario o rol» en Cómo trabajar con políticas integradas (consola) de la IAM Guía del usuario.
-
Crea una regla en CloudWatch Eventos. Para ello, abre la CloudWatch consola en https://console.aws.amazon.com/cloudwatch.
-
En el panel de navegación, bajo Events, elija Rules y después elija Create rule.
-
En la página Step 1: Create rule (Paso 1: Crear regla), las opciones Event Pattern (Patrón de eventos) y Build event pattern to match events by service (Crear un patrón de eventos para encontrar coincidencias de eventos por servicio) ya deberían estar seleccionadas.
-
En Service Name (Nombre de servicio), seleccione CodeBuild, En Event Type (Tipo de evento), la opción All Events (Todos los eventos) ya debería estar seleccionada.
-
El código siguiente debería aparecer en Event Pattern Preview (Vista previa del patrón de eventos):
{ "source": [ "aws.codebuild" ] }
-
Elija Edit (Editar) y sustituya el código de Event Pattern Preview (Vista previa de patrón del eventos) por uno de los dos patrones de reglas siguientes.
Este primer patrón de reglas desencadena un evento siempre que se inicia o se completa una compilación en los proyectos de compilación especificados en AWS CodeBuild.
{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build State Change" ], "detail": { "build-status": [ "IN_PROGRESS", "SUCCEEDED", "FAILED", "STOPPED" ], "project-name": [ "
my-demo-project-1
", "my-demo-project-2
" ] } }En la regla anterior, realice los siguientes cambios de código según sea necesario.
-
Para desencadenar un evento cuando se inicia o se completa una compilación, deje todos los valores tal y como se muestran en la matriz
build-status
o quite completamente la matrizbuild-status
. -
Para activar un evento solo cuando se complete una compilación, elimine
IN_PROGRESS
de la matrizbuild-status
. -
Para activar un evento solo cuando se inicie una compilación, elimine todos los valores a excepción de
IN_PROGRESS
de la matrizbuild-status
. -
Para activar eventos para todos los proyectos de compilación, elimine toda la matriz
project-name
. -
Para activar eventos solo para proyectos de compilación individuales, especifique el nombre de cada proyecto de compilación en la matriz
project-name
.
Este segundo patrón de reglas desencadena un evento siempre que una compilación pasa de una fase a otra en los proyectos de compilación especificados en AWS CodeBuild.
{ "source": [ "aws.codebuild" ], "detail-type": [ "CodeBuild Build Phase Change" ], "detail": { "completed-phase": [ "SUBMITTED", "PROVISIONING", "DOWNLOAD_SOURCE", "INSTALL", "PRE_BUILD", "BUILD", "POST_BUILD", "UPLOAD_ARTIFACTS", "FINALIZING" ], "completed-phase-status": [ "TIMED_OUT", "STOPPED", "FAILED", "SUCCEEDED", "FAULT", "CLIENT_ERROR" ], "project-name": [ "
my-demo-project-1
", "my-demo-project-2
" ] } }En la regla anterior, realice los siguientes cambios de código según sea necesario.
-
Para desencadenar un evento con cada cambio de fase de compilación (lo que podría enviar hasta nueve notificaciones por cada compilación), deje todos los valores tal y como se muestran en la matriz
completed-phase
o elimine completamente la matrizcompleted-phase
. -
Para activar eventos solo para cambios de fase de compilación individuales, elimine el nombre de cada fase de compilación en la matriz
completed-phase
para el que no desee que se active un evento. -
Para activar un evento para cada cambio de estado de fase de compilación, deje todos los valores tal y como se muestran en la matriz
completed-phase-status
o elimine completamente la matrizcompleted-phase-status
. -
Para activar eventos solo para cambios de estado de fase de compilación individuales, elimine el nombre de cada estado de fase de compilación en la matriz
completed-phase-status
para el que no desee que se active un evento. -
Para activar eventos para todos los proyectos de compilación, elimine la matriz
project-name
. -
Para activar eventos para proyectos de compilación individuales, especifique el nombre de cada proyecto de compilación en la matriz
project-name
.
Para obtener más información sobre los patrones de eventos, consulta Patrones de eventos en la Guía del EventBridge usuario de Amazon.
Para obtener más información sobre el filtrado con patrones de eventos, consulta Filtrado basado en contenido con patrones de eventos en la Guía del EventBridge usuario de Amazon.
nota
Si desea desencadenar eventos con los cambios de estado de compilación y los cambios de fase de compilación, debe crear dos reglas distintas: una para los cambios de estado y otra para los cambios de fase. Si intenta combinar las dos reglas en una sola, la regla combinada podría producir resultados inesperados o dejar de funcionar.
Cuando haya terminado de reemplazar el código, seleccione Save.
-
-
En Targets, seleccione Add target.
-
En la lista de objetivos, elige un SNStema.
-
En Topic, elija el tema que identificó o creó anteriormente.
-
Expanda Configure input, a continuación, elija Input Transformer.
-
En el cuadro Input Path (Ruta de entrada), escriba una de las siguientes rutas de entrada.
Si en una regla el valor de
detail-type
esCodeBuild Build State Change
, escriba lo siguiente.{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","build-status":"$.detail.build-status"}
Si en una regla el valor de
detail-type
esCodeBuild Build Phase Change
, escriba lo siguiente.{"build-id":"$.detail.build-id","project-name":"$.detail.project-name","completed-phase":"$.detail.completed-phase","completed-phase-status":"$.detail.completed-phase-status"}
Para obtener otros tipos de información, consulte la Referencia del formato de entrada de las notificaciones de compilación.
-
En el cuadro Input Template (Plantilla de entrada), escriba una de las siguientes plantillas de entrada.
Si en una regla el valor de
detail-type
esCodeBuild Build State Change
, escriba lo siguiente."Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'."
Si en una regla el valor de
detail-type
esCodeBuild Build Phase Change
, escriba lo siguiente."Build '<build-id>' for build project '<project-name>' has completed the build phase of '<completed-phase>' with a status of '<completed-phase-status>'."
-
Seleccione Configurar los detalles.
-
En la página Step 2: Configure rule details (Página 2: Configurar detalles de la regla), escriba el nombre y una descripción opcional. En State (Estado), deje seleccionado el valor Enabled (Habilitado).
-
Elija Crear regla.
-
Cree proyectos de compilación, ejecute las compilaciones y consulte la información de compilación.
-
Confirme que ahora CodeBuild se están enviando correctamente las notificaciones de compilación. Por ejemplo, compruebe si hay correos electrónicos de notificación de compilación en su bandeja de entrada.
Para cambiar el comportamiento de una regla, en la CloudWatch consola, elige la regla que quieres cambiar, selecciona Acciones y, a continuación, selecciona Editar. Realice los cambios que correspondan en la regla y elija Configure details (Configurar detalles) y Update rule (Actualizar regla).
Para dejar de usar una regla para enviar notificaciones de compilación, en la CloudWatch consola, elige la regla que quieres dejar de usar, selecciona Acciones y, a continuación, selecciona Inhabilitar.
Para eliminar una regla por completo, en la CloudWatch consola, elige la regla que quieres eliminar, selecciona Acciones y, a continuación, selecciona Eliminar.