Crea una EventBridge regola per una ECR fonte Amazon (AWS CloudFormation modello) - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea una EventBridge regola per una ECR fonte Amazon (AWS CloudFormation modello)

AWS CloudFormation Per creare una regola, usa lo snippet di modello come mostrato qui.

Per aggiornare il AWS CloudFormation modello di pipeline e creare una regola EventBridge
  1. Nel modello, sottoResources, utilizza la AWS::IAM::Role AWS CloudFormation risorsa per configurare il IAM ruolo che consente al tuo evento di avviare la pipeline. Questa voce crea un ruolo che utilizza due policy:

    • La prima policy consente di assumere quel ruolo.

    • La seconda policy fornisce le autorizzazioni per avviare la pipeline.

    Perché occorre apportare questa modifica? Devi creare un ruolo che possa essere assunto da EventBridge per avviare un'esecuzione nella nostra 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. Nel modello, sottoResources, usa la AWS::Events::Rule AWS CloudFormation risorsa per aggiungere una EventBridge regola per il ECR codice sorgente Amazon. Questo modello di eventi crea un evento che monitora i commit nel tuo repository. Quando EventBridge rileva una modifica dello stato del repository, la regola invoca StartPipelineExecution la pipeline di destinazione.

    Perché sto apportando questa modifica? È necessario creare un evento con una regola che specifichi come deve essere eseguito il push di un'immagine e un target che nomini la pipeline da avviare dall'evento.

    Questo frammento utilizza un'immagine denominata eb-test con un tag 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

    Per visualizzare il modello di eventi completo supportato per ECR gli eventi Amazon, consulta Amazon ECR Events EventBridge e/o Amazon Elastic Container Registry Events.

  3. Salva il modello aggiornato nel computer locale e quindi apri la console AWS CloudFormation .

  4. Seleziona lo stack e scegli Create Change Set for Current Stack (Crea set di modifiche per lo stack corrente).

  5. Carica il modello e quindi visualizza le modifiche elencate in AWS CloudFormation. Queste sono le modifiche da apportare allo stack. Le nuove risorse dovrebbero essere visibili nell'elenco.

  6. Scegliere Execute (Esegui).