Crear una EventBridge regla para una fuente de Amazon ECR (AWS CloudFormation plantilla) - AWS CodePipeline

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.

Crear una EventBridge regla para una fuente de Amazon ECR (AWS CloudFormation plantilla)

AWS CloudFormation Para crear una regla, utilice el fragmento de plantilla que se muestra aquí.

Para actualizar tu AWS CloudFormation plantilla de canalización y crear una regla EventBridge
  1. En la plantilla, en la secciónResources, usa el AWS::IAM::Role AWS CloudFormation recurso para configurar la función de IAM que permite que tu evento inicie tu canalización. Esta entrada crea un rol que utiliza dos políticas:

    • La primera política permite asumir el rol.

    • La segunda política concede permisos para iniciar la canalización.

    ¿Por qué voy a hacer este cambio? Debes crear una función que pueda ser asumida EventBridge para iniciar una ejecución en nuestra canalización.

    YAML
    EventRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - events.amazonaws.com Action: sts:AssumeRole Path: / Policies: - PolicyName: eb-pipeline-execution PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: codepipeline:StartPipelineExecution Resource: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}
    JSON
    { "EventRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }, "Path": "/", "Policies": [ { "PolicyName": "eb-pipeline-execution", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codepipeline:StartPipelineExecution", "Resource": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" } } ] } } ] } } } ...
  2. En la plantilla, enResources, utilice el AWS::Events::Rule AWS CloudFormation recurso para añadir una EventBridge regla para la fuente de Amazon ECR. Este patrón de eventos crea un evento que monitoriza las confirmaciones en su repositorio. Cuando EventBridge detecta un cambio en el estado del repositorio, la regla se invoca StartPipelineExecution en la canalización de destino.

    ¿Por qué voy a hacer este cambio? Debe crear un evento con una regla que especifique cómo se debe hacer una inserción de imagen, y un objetivo que indique el nombre de la canalización que va a iniciar el evento.

    Este fragmento utiliza una imagen denominada eb-test con una etiqueta latest.

    YAML
    EventRule: Type: 'AWS::Events::Rule' Properties: EventPattern: detail: action-type: [PUSH] image-tag: [latest] repository-name: [eb-test] result: [SUCCESS] detail-type: [ECR Image Action] source: [aws.ecr] Targets: - Arn: !Sub arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline} RoleArn: !GetAtt - EventRole - Arn Id: codepipeline-AppPipeline
    JSON
    { "EventRule": { "Type": "AWS::Events::Rule", "Properties": { "EventPattern": { "detail": { "action-type": [ "PUSH" ], "image-tag": [ "latest" ], "repository-name": [ "eb-test" ], "result": [ "SUCCESS" ] }, "detail-type": [ "ECR Image Action" ], "source": [ "aws.ecr" ] }, "Targets": [ { "Arn": { "Fn::Sub": "arn:aws:codepipeline:${AWS::Region}:${AWS::AccountId}:${AppPipeline}" }, "RoleArn": { "Fn::GetAtt": [ "EventRole", "Arn" ] }, "Id": "codepipeline-AppPipeline" } ] } } },
    nota

    Para ver el patrón de eventos completo compatible con los eventos de Amazon ECR, consulte Amazon ECR Events o EventBridge Amazon Elastic Container Registry Events.

  3. Guarde la plantilla actualizada en el equipo local y luego abra la consola de AWS CloudFormation .

  4. Seleccione la pila y luego elija Create Change Set for Current Stack (Crear conjuntos de cambios para la pila actual).

  5. Cargue la plantilla y, a continuación, consulte los cambios indicados en AWS CloudFormation. Estos son los cambios que se realizan en la pila. Debería ver los nuevos recursos en la lista.

  6. Elija Ejecutar.