View a markdown version of this page

Crea una EventBridge regola per una fonte Amazon ECR (CLI) - 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 fonte Amazon ECR (CLI)

Chiama il comando put-rule, specificando:

  • Un nome che identifica in modo univoco la regola che stai creando. Questo nome deve essere univoco in tutte le pipeline che crei e CodePipeline associate al tuo account. AWS

  • Il modello eventi per i campi di origine e di dettaglio utilizzati dalla regola. Per ulteriori informazioni, consulta Amazon EventBridge e Event Patterns.

Per creare una EventBridge regola con Amazon ECR come origine e destinazione CodePipeline dell'evento
  1. Aggiungi le autorizzazioni EventBridge da utilizzare per CodePipeline richiamare la regola. Per ulteriori informazioni, consulta Utilizzo di politiche basate sulle risorse per Amazon. EventBridge

    1. Utilizza l'esempio seguente per creare la policy di attendibilità per consentire a EventBridge di assumere il ruolo del servizio. Denomina la policy di attendibilità trustpolicyforEB.json.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Utilizza il seguente comando per creare il ruolo Role-for-MyRule e collegare la policy di attendibilità.

      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
    3. Crea il JSON della policy delle autorizzazioni, come mostrato in questo esempio, per la pipeline denominata MyFirstPipeline. Denomina la policy delle autorizzazioni permissionspolicyforEB.json.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline" ] } ] }
    4. Utilizza il comando seguente per collegare la policy delle autorizzazioni CodePipeline-Permissions-Policy-for-EB al ruolo Role-for-MyRule.

      Perché occorre apportare questa modifica? L'aggiunta di questa policy al ruolo crea le autorizzazioni per. EventBridge

      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
  2. Richiama il comando put-rule e includi i parametri --name, --event-pattern e --role-arn.

    Perché occorre apportare questa modifica? È necessario creare un evento con una regola che specifichi come deve essere effettuato il push di un'immagine e un target che nomini la pipeline che deve essere avviata dall'evento.

    Il seguente comando di esempio crea una regola denominata MyECRRepoRule.

    aws events put-rule --name "MyECRRepoRule" --event-pattern "{\"detail-type\":[\"ECR Image Action\"],\"source\":[\"aws.ecr\"],\"detail\":{\"action-type\":[\"PUSH\"],\"image-tag\":[\"latest\"],\"repository-name\":[\"eb-test\"],\"result\":[\"SUCCESS\"]}}}" --role-arn "arn:aws:iam::ACCOUNT_ID:role/Role-for-MyRule"
    Nota

    Per visualizzare lo schema completo degli eventi supportato per gli eventi Amazon ECR, consulta Amazon ECR Events EventBridge e/o Amazon Elastic Container Registry Events.

  3. Per aggiungerlo CodePipeline come obiettivo, chiama il put-targets comando e includi i seguenti parametri:

    • Il parametro --rule viene utilizzato con il rule_name che hai creato utilizzando put-rule.

    • Il parametro --targets viene utilizzato con l'Id elenco della destinazione nell'elenco delle destinazioni e l'ARN della pipeline di destinazione.

    Il comando di esempio seguente specifica che per la regola denominata MyECRRepoRule, la destinazione Id è composta dal numero uno, per indicare che in un elenco di destinazioni per la regola questa è la destinazione 1. Il comando di esempio specifica anche un esempio Arn per la pipeline e l'esempio RoleArn per la regola. La pipeline si avvia quando si verifica una modifica nel repository.

    aws events put-targets --rule MyECRRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline,RoleArn=arn:aws:iam::80398EXAMPLE:role/Role-for-MyRule
  4. (Facoltativo) Per configurare un trasformatore di ingresso con sostituzioni di origine per un ID di immagine specifico, usa il seguente JSON nel comando CLI. L'esempio seguente configura un override in cui:

    • SourceIn questo esempioactionName, è il valore dinamico, definito al momento della creazione della pipeline, non derivato dall'evento di origine.

    • IMAGE_DIGESTIn questo esempiorevisionType, è il valore dinamico, definito al momento della creazione della pipeline, non derivato dall'evento di origine.

    • Il revisionValue valore < revisionValue > in questo esempio è derivato dalla variabile di evento di origine.

    { "Rule": "my-rule", "Targets": [ { "Id": "MyTargetId", "Arn": "ARN", "InputTransformer": { "InputPathsMap": { "revisionValue": "$.detail.image-digest" }, "InputTemplate": { "sourceRevisions": [ { "actionName": "Source", "revisionType": "IMAGE_DIGEST", "revisionValue": "<revisionValue>" } ] } } } ] }