Ejemplo: crear un AWS CodeCommit disparador para un SNS tema de Amazon - AWS CodeCommit

AWS CodeCommit ya no está disponible para nuevos clientes. Los clientes existentes de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información

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: crear un AWS CodeCommit disparador para un SNS tema de Amazon

Puede crear un activador para un CodeCommit repositorio de modo que los eventos de ese repositorio activen notificaciones desde un tema de Amazon Simple Notification Service (AmazonSNS). Es posible que desees crear un activador para un SNS tema de Amazon para que los usuarios puedan suscribirse a las notificaciones sobre eventos del repositorio, como la eliminación de sucursales. También puedes aprovechar la integración de los SNS temas de Amazon con otros servicios, como Amazon Simple Queue Service (AmazonSQS) y AWS Lambda.

nota
  • Debes apuntar el desencadenante a un SNS tema de Amazon existente que sea la acción realizada en respuesta a los eventos del repositorio. Para obtener más información sobre la creación de SNS temas de Amazon y la suscripción a ellos, consulta Cómo empezar con Amazon Simple Notification Service.

  • Los temas de Amazon SNS FIFO (primero en entrar, primero en salir) no se admiten como CodeCommit activadores.

Crear un disparador para un SNS tema de Amazon para un CodeCommit repositorio (consola)

  1. Abre la CodeCommit consola en https://console.aws.amazon.com/codesuite/codecommit/home.

  2. En Repositories (Repositorios), seleccione aquel en el que quiera crear los disparadores para los eventos del repositorio.

  3. En el panel de navegación del repositorio, elija Settings (Configuración) y, a continuación, seleccione Triggers (Disparadores).

  4. Elija Create trigger (Crear disparador) y, a continuación, haga lo siguiente:

    • En Nombre del disparador, introduzca un nombre para el disparador (por ejemplo, MyFirstTrigger).

    • En Eventos, selecciona los eventos del repositorio que activan el SNS tema de Amazon para enviar notificaciones.

      Si elige All repository events, no podrá seleccionar ningún otro evento. Para elegir un subconjunto de eventos, elimine All repository events y, a continuación, elija uno o más eventos de la lista. Por ejemplo, si quieres que el activador se ejecute solo cuando un usuario cree una rama o etiqueta en el CodeCommit repositorio, elimina Todos los eventos del repositorio y, a continuación, selecciona Crear rama o etiqueta.

    • Si desea que el disparador se aplique a todas las ramificaciones del repositorio, en Branches (Ramificaciones), deje la selección en blanco, ya que esta opción predeterminada se aplica el disparador para que todas las ramificaciones de forma automática. Si desea que este disparador se aplique a ramificaciones específicas solo, elija hasta 10 nombres de ramificaciones de la lista de ramificaciones del repositorio.

    • En Elige el servicio que quieres usar, selecciona Amazon SNS.

    • En Amazon SNS, elige un nombre de tema de la lista o introduce el ARN nombre del tema.

      nota

      Los temas de Amazon SNS FIFO (primero en entrar, primero en salir) no se admiten como CodeCommit activadores. Debes elegir un SNS tema de Amazon cuyo tipo esté establecido en Estándar.

    • En Datos personalizados, proporciona cualquier información opcional que desees incluir en la notificación enviada por el SNS tema de Amazon (por ejemplo, el nombre de un IRC canal que utilizan los desarrolladores cuando hablan sobre el desarrollo en este repositorio). Este campo es una cadena. No se puede usar para transmitir parámetros dinámicos.

  5. (Opcional) Elija Test trigger (Probar disparador). Este paso te ayuda a confirmar que has configurado correctamente el acceso entre CodeCommit y el SNS tema de Amazon. Utiliza el SNS tema Amazon para enviar una notificación de prueba con los datos de tu repositorio, si están disponibles. Si no se dispone de datos reales, la notificación de prueba contiene datos de ejemplo.

  6. Seleccione Create trigger (Crear disparador) para acabar de crear el disparador.

Crear un disparador para un SNS tema de Amazon para un CodeCommit repositorio (AWS CLI)

También puedes usar la línea de comandos para crear un activador para un SNS tema de Amazon en respuesta a eventos del CodeCommit repositorio, como cuando alguien envía una confirmación a tu repositorio.

Para crear un disparador para un SNS tema de Amazon
  1. Abre un editor de texto sin formato y crea un JSON archivo que especifique:

    • El nombre del SNS tema de Amazon.

      nota

      Los temas de Amazon SNS FIFO (primero en entrar, primero en salir) no se admiten como CodeCommit activadores. Debes elegir un SNS tema de Amazon cuyo tipo esté establecido en Estándar.

    • El repositorio y las ramificaciones que desee monitorizar con este disparador. (Si no especifica ramificaciones, el disparador se aplica a todas las ramificaciones del repositorio).

    • Los eventos que activan este disparador.

    Guarde el archivo.

    Por ejemplo, para crear un activador para un repositorio llamado MyDemoRepo que publica todos los eventos del repositorio en un SNS tema de Amazon llamado MySNSTopic para dos sucursales, main y preprod:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] } ] }

    Debe haber un bloque de activación en el JSON para cada activador de un repositorio. Para crear más de un activador para el repositorio, incluya más de un bloque activador en elJSON. Recuerde que todos los disparadores creados en este archivo son para el repositorio especificado. No puede crear activadores para varios repositorios en un solo JSON archivo. Por ejemplo, si desea crear dos activadores para un repositorio, puede crear un JSON archivo con dos bloques de activadores. En el siguiente ejemplo, no se especifican las ramificaciones del segundo disparador, por lo que ese disparador se aplica a todas las ramificaciones:

    { "repositoryName": "MyDemoRepo", "triggers": [ { "name": "MyFirstTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "customData": "", "branches": [ "main", "preprod" ], "events": [ "all" ] }, { "name": "MySecondTrigger", "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic2", "customData": "", "branches": [], "events": [ "updateReference", "deleteReference" ] } ] }

    Puede crear disparadores para eventos que especifique, como por ejemplo cuando se inserta una confirmación en un repositorio. Entre los tipos de eventos se incluyen:

    • all: todos los eventos del repositorio y las ramificaciones especificados.

    • updateReference: si las confirmaciones se envían al repositorio y ramificaciones especificados.

    • createReference: si se crea una nueva ramificación o etiqueta en el repositorio especificado.

    • deleteReference: si se elimina una ramificación o etiqueta en el repositorio especificado.

    nota

    Puede usar más de un tipo de evento en un disparador. Sin embargo, si especifica all, no podrá especificar ningún otro evento.

    Para ver la lista completa de tipos de eventos válidos, en el terminal o el símbolo del sistema, introduzca aws codecommit put-repository-triggers help.

    Además, puedes incluir una cadena customData (por ejemplo, el nombre de un IRC canal que los desarrolladores usen cuando hablen sobre el desarrollo en este repositorio). Este campo es una cadena. No se puede usar para transmitir parámetros dinámicos. Esta cadena se añade como atributo a la CodeCommit JSON devuelta en respuesta al disparador.

  2. (Opcional) Ejecute el comando test-repository-triggers en un terminal o la línea de comandos. Esta prueba utiliza datos de muestra del repositorio (o genera datos de muestra si no hay datos disponibles) para enviar una notificación a los suscriptores del SNS tema de Amazon. Por ejemplo, se utiliza lo siguiente para comprobar que JSON el nombre del archivo desencadenante trigger.json es válido y CodeCommit puede publicarse en el SNS tema de Amazon:

    aws codecommit test-repository-triggers --cli-input-json file://trigger.json

    Si se ejecuta correctamente, este comando proporciona información similar a la siguiente:

    { "successfulExecutions": [ "MyFirstTrigger" ], "failedExecutions": [] }
  3. En una terminal o línea de comandos, ejecuta el put-repository-triggers comando para crear el disparador CodeCommit. Por ejemplo, para usar un JSON archivo llamado trigger.json para crear el disparador:

    aws codecommit put-repository-triggers --cli-input-json file://trigger.json

    Este comando devuelve un ID de configuración similar a este:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE" }
  4. Para ver la configuración del disparador, ejecute el comando get-repository-triggers y especifique el nombre del repositorio:

    aws codecommit get-repository-triggers --repository-name MyDemoRepo

    Este comando devuelve la estructura de todos los disparadores configurados para el repositorio, de forma similar a la siguiente:

    { "configurationId": "0123456-I-AM-AN-EXAMPLE", "triggers": [ { "events": [ "all" ], "destinationArn": "arn:aws:sns:us-east-2:111122223333:MySNSTopic", "branches": [ "main", "preprod" ], "name": "MyFirstTrigger", "customData": "Project ID 12345" } ] }
  5. Para probar la funcionalidad del disparador, cree y envíe una confirmación al repositorio en el que haya configurado el disparador. Deberías ver una respuesta del SNS tema de Amazon. Por ejemplo, si has configurado el SNS tema de Amazon para enviar un correo electrónico, deberías ver un correo de Amazon SNS en la cuenta de correo electrónico suscrita al tema.

    El siguiente es un ejemplo del resultado de un correo electrónico enviado desde Amazon SNS en respuesta a un envío a un CodeCommit repositorio:

    { "Records":[ { "awsRegion":"us-east-2", "codecommit":{ "references" : [ { "commit":"317f8570EXAMPLE", "created":true, "ref":"refs/heads/NewBranch" }, { "commit":"4c925148EXAMPLE", "ref":"refs/heads/preprod", } ] }, "eventId":"11111-EXAMPLE-ID", "eventName":"ReferenceChange", "eventPartNumber":1, "eventSource":"aws:codecommit", "eventSourceARN":"arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "eventTime":"2016-02-09T00:08:11.743+0000", "eventTotalParts":1, "eventTriggerConfigId":"0123456-I-AM-AN-EXAMPLE", "eventTriggerName":"MyFirstTrigger", "eventVersion":"1.0", "customData":"Project ID 12345", "userIdentityARN":"arn:aws:iam::111122223333:user/JaneDoe-CodeCommit", } ] }