Codepipeline events & Lambda

Podemos crear una regla de evento en Cloudwatch que escuche eventos de tipo Codepipeline pero hemos de tener en cuenta que tipo de detalle queremos escuchar porque podemos tener multiples eventos no deseados. Esto me pasó con una Lambda hace poco, al cambiar sin ser consciente del detail-type que estaba utilizando.

Detail-type

Se puede configurar que tipo de evento queremos escuchar sobre CodePipeline cuando su estado cambia, utilizando el “detail-type.

Vamos a ver que tipos de detail-type existen

  • CodePipeline Pipeline Execution State Change
  • CodePipeline Stage Execution State Change: etapas específicos o todos las etapas dentro de una pipeline específica o todas las pipelines.
  • CodePipeline Action Execution State Change: acciones específicas o todas las acciones dentro de una etapa específica o todas las etapas dentro de una pipeline o todas las pipelines.

El nivel de eventos que escucharemos según esta lista irá de menos a más. El escenario típico es una Lambda que recibirá eventos via una regla de Cloudwatch. El caso es que si definimos mal el detail-type podemos llegar a tener más mensajes de los que deseamos. Esto me pasó al actualizar un evento de tipo CloudwatchEvent y modificar su Pattern con un detail-type equivocado o no deseado, en este caso.

Otros eventos

  • RESUMED
  • SUPERSED
  • CANCELED

Ejemplo

{
  "source": [
    "aws.codepipeline"
  ],
  "detail-type": [
    "CodePipeline Pipeline Execution State Change",
  ],
  "detail": {
    "state": [ 
      "SUCCEEDED", 
      "FAILED", 
      "STARTED"
    ],
    "pipeline": [{ "Ref": "myPipeline" }]
  }
}

Este código solo avisará cuando se inicie, falle o complete la pipeline.

Links

Leave a Reply

Your email address will not be published. Required fields are marked *