Crie uma EventBridge regra para uma fonte do Amazon ECR (AWS CloudFormation modelo) - AWS CodePipeline

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie uma EventBridge regra para uma fonte do Amazon ECR (AWS CloudFormation modelo)

Para usar AWS CloudFormation para criar uma regra, use o trecho do modelo conforme mostrado aqui.

Para atualizar seu AWS CloudFormation modelo de funil e criar uma EventBridge regra
  1. No modelo, emResources, use o AWS::IAM::Role AWS CloudFormation recurso para configurar a função do IAM que permite que seu evento inicie seu pipeline. Essa entrada cria uma função que utiliza duas políticas:

    • A primeira política permite que a função seja assumida.

    • A segunda política fornece permissões para iniciar o pipeline.

    Por que estou fazendo essa alteração? Você deve criar uma função que possa ser assumida EventBridge para iniciar uma execução em nosso pipeline.

    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. No modelo, emResources, use o AWS::Events::Rule AWS CloudFormation recurso para adicionar uma EventBridge regra para a fonte do Amazon ECR. Esse padrão de evento cria um evento que monitora as confirmações no seu repositório. Quando EventBridge detecta uma alteração no estado do repositório, a regra é invocada StartPipelineExecution em seu pipeline de destino.

    Por que estou fazendo essa alteração? Você deve criar um evento com uma regra que especifique como deve ser feito um envio de imagem por push e um destino que nomeie o pipeline a ser iniciado pelo evento.

    Esse trecho usa uma imagem chamada eb-test com uma tag de 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 o padrão completo de eventos suportado pelos eventos do Amazon ECR, consulte Eventos do Amazon ECR e/ou Eventos do EventBridge Amazon Elastic Container Registry.

  3. Salve o modelo atualizado em seu computador local e abra o console do AWS CloudFormation .

  4. Selecione sua pilha e clique em Create Change Set for Current Stack (Criar conjunto de alterações para a pilha atual).

  5. Carregue o modelo e visualize as alterações listadas no AWS CloudFormation. Essas são as alterações a serem feitas na pilha. Seus novos recursos devem ser exibidos na lista.

  6. Clique em Executar.