

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Amazon ECR-Quellaktionen und Ressourcen EventBridge
<a name="create-cwe-ecr-source"></a>

Um eine Amazon ECR-Quellaktion hinzuzufügen CodePipeline, können Sie eine der folgenden Optionen wählen: 
+ Verwenden Sie den Assistenten „**Pipeline erstellen**“ ([Erstellen Sie eine benutzerdefinierte Pipeline (Konsole)](pipelines-create.md#pipelines-create-console)) der CodePipeline Konsole oder die **Aktionsseite „Aktion bearbeiten**“, um die Option **Amazon ECR** Provider auszuwählen. Die Konsole erstellt eine EventBridge Regel, die Ihre Pipeline startet, wenn sich die Quelle ändert.
+ Verwenden Sie die CLI, um die Aktionskonfiguration für die `ECR` Aktion hinzuzufügen und zusätzliche Ressourcen wie folgt zu erstellen:
  + Verwenden Sie die `ECR` Beispiel-Aktionskonfiguration in[Referenz zur Amazon ECR-Quellaktion](action-reference-ECR.md), um Ihre Aktion zu erstellen, wie unter gezeigt[Erstellen einer Pipeline (CLI)](pipelines-create.md#pipelines-create-cli).
  + Die Methode zur Erkennung von Änderungen startet die Pipeline standardmäßig durch Abfragen der Quelle. Sie sollten die regelmäßigen Prüfungen deaktivieren und die Regel zur Erkennung von Änderungen manuell erstellen. Verwenden Sie eine der folgenden Methoden:[Eine EventBridge Regel für eine Amazon ECR-Quelle (Konsole) erstellen](create-cwe-ecr-source-console.md),[Eine EventBridge Regel für eine Amazon ECR-Quelle (CLI) erstellen](create-cwe-ecr-source-cli.md), oder[Eine EventBridge Regel für eine Amazon ECR-Quelle erstellen (CloudFormation Vorlage)](create-cwe-ecr-source-cfn.md).

**Topics**
+ [Eine EventBridge Regel für eine Amazon ECR-Quelle (Konsole) erstellen](create-cwe-ecr-source-console.md)
+ [Eine EventBridge Regel für eine Amazon ECR-Quelle (CLI) erstellen](create-cwe-ecr-source-cli.md)
+ [Eine EventBridge Regel für eine Amazon ECR-Quelle erstellen (CloudFormation Vorlage)](create-cwe-ecr-source-cfn.md)

# Eine EventBridge Regel für eine Amazon ECR-Quelle (Konsole) erstellen
<a name="create-cwe-ecr-source-console"></a>

**So erstellen Sie eine EventBridge Regel zur Verwendung in CodePipeline Vorgängen (Amazon ECR-Quelle)**

1. Öffnen Sie die EventBridge Amazon-Konsole unter [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Wählen Sie im Navigationsbereich die Option **Events**.

1. Wählen Sie **Create Rule** und dann unter **Event source** unter **Service Name** die Option **Elastic Container Registry (ECR)** aus.

1. Wählen Sie unter **Event source (Ereignisquelle)** die Option **Event Pattern (Ereignismuster)** aus.

   Wählen Sie **Bearbeiten** und fügen Sie dann das folgende Beispiel-Event-Muster in das Fenster „**Ereignisquelle**“ für ein `eb-test` Repository mit dem folgenden Image-Tag ein: `cli-testing`

   ```
   {
       "detail-type": [
           "ECR Image Action"
       ],
       "source": [
           "aws.ecr"
       ],
       "detail": {
           "action-type": [
               "PUSH"
           ],
           "image-tag": [
               "latest"
           ],
           "repository-name": [
               "eb-test"
           ],
           "result": [
               "SUCCESS"
           ]
       }
   }
   ```
**Anmerkung**  
Das vollständige Ereignismuster, das für Amazon ECR-Ereignisse unterstützt wird, finden Sie unter [Amazon ECR Events EventBridge und/oder](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-eventbridge.html) [Amazon Elastic Container Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ecr-event-types) Events.

1. Wählen Sie **Speichern**.

   Zeigen Sie die Regel im Bereich **Event Pattern Preview** an.

1. Wählen Sie unter **Ziele die** Option. **CodePipeline**

1. Geben Sie den Pipeline-ARN für die Pipeline ein, die mit dieser Regel gestartet werden soll.
**Anmerkung**  
Sie finden den Pipeline-ARN in der Metadatenausgabe, nachdem Sie den Befehl **get-pipeline** ausgeführt haben. Der Pipeline-ARN wird in folgendem Format erstellt:   
arn:aws:codepipeline::: *region* *account* *pipeline-name*  
Pipeline-Beispiel-ARN:  
`arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline`

1. Erstellen oder spezifizieren Sie eine IAM-Dienstrolle, die EventBridge Berechtigungen zum Aufrufen des mit Ihrer EventBridge Regel verknüpften Ziels gewährt (in diesem Fall ist das Ziel). CodePipeline 
   + Wählen Sie **Neue Rolle für diese spezifische Ressource erstellen** aus, um eine Servicerolle zu erstellen, die Ihnen EventBridge Berechtigungen für den Start Ihrer Pipeline-Ausführungen erteilt.
   + Wählen Sie **Bestehende Rolle verwenden** aus, um eine Servicerolle einzugeben, die Ihnen EventBridge Berechtigungen für den Start Ihrer Pipeline-Ausführungen erteilt.

1. (Optional) Um Quellüberschreibungen mit einer bestimmten Bild-ID anzugeben, verwenden Sie den Eingangstransformator, um die Daten als JSON-Parameter zu übergeben. Sie können den Eingangstransformator auch verwenden, um Pipeline-Variablen zu übergeben.
   + Erweitern Sie **Additional settings** (Zusätzliche Einstellungen).

     Wählen **Sie unter Zieleingabe konfigurieren** die Option **Eingangstransformator konfigurieren** aus.

     Wählen Sie im Dialogfenster **Enter my own** aus. **Geben Sie in das Feld Eingabepfad** die folgenden Schlüssel-Wert-Paare ein.

     ```
     {"revisionValue": "$.detail.image-digest"}
     ```
   + Geben Sie im Feld **Vorlage** die folgenden Schlüssel-Wert-Paare ein.

     ```
     {
         "sourceRevisions": [
             {
                 "actionName": "Source",
                 "revisionType": "IMAGE_DIGEST",
                 "revisionValue": "<revisionValue>"
             }
         ],
          "variables": [
             {
                 "name": "Variable_Name",
                 "value": "Variable_Value"
             }
         ]
     }
     ```
   + Wählen Sie **Bestätigen** aus.

1. Überprüfen Sie die eingerichteten Regeln, um sicherzustellen, dass sie Ihren Anforderungen entsprechen.

1. Wählen Sie **Details konfigurieren**.

1. Geben Sie auf der Seite **Configure rule details (Regeldetails konfigurieren)** einen Namen und eine Beschreibung für die Regel ein und wählen Sie dann **State (Status)**, um die Regel zu aktivieren.

1. Wenn Sie mit der Regel zufrieden sind, klicken Sie auf **Create rule (Regel erstellen)**.

# Eine EventBridge Regel für eine Amazon ECR-Quelle (CLI) erstellen
<a name="create-cwe-ecr-source-cli"></a>

Rufen Sie den Befehl **put-rule** mit folgenden Angaben auf:
+ Einen Namen, der die von Ihnen erstellte Regel eindeutig bezeichnet. Dieser Name muss für alle Pipelines, die Sie erstellen und die mit Ihrem AWS Konto CodePipeline verknüpft sind, eindeutig sein.
+ Das Ereignismuster für die Quelle und von der Regel verwendete Detailfelder. Weitere Informationen finden Sie unter [Amazon EventBridge und Event Patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html).

**Um eine EventBridge Regel mit Amazon ECR als Ereignisquelle und CodePipeline als Ziel zu erstellen**

1. Fügen Sie Berechtigungen hinzu EventBridge , die CodePipeline zum Aufrufen der Regel verwendet werden sollen. Weitere Informationen finden Sie unter [Verwenden ressourcenbasierter Richtlinien für Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html). EventBridge

   1. Verwenden Sie das folgende Beispiel zum Erstellen der Vertrauensrichtlinie, mit der EventBridge die Servicerolle übernehmen kann. Geben Sie der Vertrauensrichtlinie den Namen `trustpolicyforEB.json`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "events.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Verwenden Sie den folgenden Befehl, um die `Role-for-MyRule`-Rolle zu erstellen und die Vertrauensrichtlinie anzufügen.

      ```
      aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
      ```

   1. Erstellen Sie die JSON-Datei der Berechtigungsrichtlinie wie in diesem Beispiel für die Pipeline mit dem Namen `MyFirstPipeline` gezeigt. Geben Sie der Berechtigungsrichtlinie den Namen `permissionspolicyforEB.json`.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "codepipeline:StartPipelineExecution"
                  ],
                  "Resource": [
                      "arn:aws:codepipeline:us-west-2:111122223333:MyFirstPipeline"
                  ]
              }
          ]
      }
      ```

------

   1. Verwenden Sie den folgenden Befehl, um die Berechtigungsrichtlinie `CodePipeline-Permissions-Policy-for-EB` der Rolle `Role-for-MyRule` anzufügen.

      **Warum nehme ich diese Änderung vor?** Durch das Hinzufügen dieser Richtlinie zur Rolle werden Berechtigungen für erstellt. EventBridge

      ```
      aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
      ```

1. Rufen Sie den Befehl „**put-rule**“ auf und beziehen Sie die Parameter „`--name`“, „`--event-pattern`“ und „`--role-arn`“ ein.

   **Warum nehme ich diese Änderung vor?** Sie müssen ein Ereignis mit einer Regel erstellen, die festlegt, wie ein Image-Push durchgeführt werden muss, und einem Ziel, das die Pipeline benennt, die durch das Ereignis gestartet werden soll.

   Mit dem folgenden Beispielbefehl wird eine Regel mit dem Namen „`MyECRRepoRule`“ erstellt.

   ```
   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"
   ```
**Anmerkung**  
Das vollständige Ereignismuster, das für Amazon ECR-Ereignisse unterstützt wird, finden Sie unter [Amazon ECR Events EventBridge und/oder](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-eventbridge.html) [Amazon Elastic Container Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ecr-event-types) Events.

1. Um es CodePipeline als Ziel hinzuzufügen, rufen Sie den **put-targets** Befehl auf und geben Sie die folgenden Parameter an:
   + Der Parameter `--rule` wird für den `rule_name` verwendet, den Sie mit **put-rule** erstellt haben.
   + Der Parameter `--targets` wird für die Listen-`Id` des Ziels in der Zielliste und den `ARN` der Ziel-Pipeline verwendet.

   Der folgende Beispielbefehl legt fest, dass für die Regel mit dem Namen `MyECRRepoRule` die Ziel-`Id` aus der Nummer 1 besteht. Dies bedeutet, dass in einer Liste mit Zielen für die Regel dieses Ziel 1 ist. Der Beispielbefehl gibt auch einen Beispiel-`Arn` für die Pipeline und den Beispiel-`RoleArn` für die Regel an. Die Pipeline startet, wenn Änderungen im Repository auftreten.

   ```
   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
   ```

1. (Optional) Um einen Eingangstransformator mit Quellüberschreibungen für eine bestimmte Bild-ID zu konfigurieren, verwenden Sie den folgenden JSON-Code in Ihrem CLI-Befehl. Im folgenden Beispiel wird eine Überschreibung konfiguriert, wobei:
   + `Source`In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht aus dem Quellereignis abgeleitet wurde. `actionName`
   + `IMAGE_DIGEST`In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht aus dem Quellereignis abgeleitet wurde. `revisionType`
   + In diesem Beispiel wird < *revisionValue* > von der Quellereignisvariablen abgeleitet. `revisionValue`

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

# Eine EventBridge Regel für eine Amazon ECR-Quelle erstellen (CloudFormation Vorlage)
<a name="create-cwe-ecr-source-cfn"></a>



Um eine Regel CloudFormation zu erstellen, verwenden Sie den Vorlagenausschnitt, wie hier gezeigt.

**Um Ihre CloudFormation Pipeline-Vorlage zu aktualisieren und eine Regel zu erstellen EventBridge**

1. Verwenden Sie in der Vorlage unter die `AWS::IAM::Role` CloudFormation Ressource`Resources`, um die IAM-Rolle zu konfigurieren, mit der Ihre Veranstaltung Ihre Pipeline starten kann. Dieser Eintrag erstellt eine Rolle mit zwei Richtlinien:
   + Die erste Richtlinie ermöglicht die Übernahme der Rolle.
   + Die zweite Richtlinie stellt Berechtigungen zum Starten der Pipeline bereit.

   **Warum nehme ich diese Änderung vor?** Sie müssen eine Rolle erstellen, die übernommen werden kann, EventBridge um eine Ausführung in unserer Pipeline zu starten.

------
#### [ 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}"
                                   }
                               }
                           ]
                       }
                   }
               ]
           }
       }
   }
   ...
   ```

------

1. Verwenden Sie in der Vorlage unter die `AWS::Events::Rule` CloudFormation Ressource`Resources`, um eine EventBridge Regel für die Amazon ECR-Quelle hinzuzufügen. Dieses Ereignismuster erzeugt ein Ereignis, das Commits in Ihrem Repository überwacht. Wenn eine Änderung des Repository-Status EventBridge erkannt wird, wird die Regel in Ihrer Zielpipeline aufgerufen`StartPipelineExecution`.

   **Warum nehme ich diese Änderung vor?** Sie müssen ein Ereignis mit einer Regel erstellen, die festlegt, wie ein Image-Push durchgeführt werden muss, und einem Ziel, das die Pipeline benennt, die durch das Ereignis gestartet werden soll.

   Dieses Snippet verwendet ein Bild mit dem Namen `eb-test` und dem 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"
                   }
               ]
           }
       }
   },
   ```

------
**Anmerkung**  
Das vollständige Ereignismuster, das für Amazon ECR-Ereignisse unterstützt wird, finden Sie unter [Amazon ECR Events EventBridge und/oder](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-eventbridge.html) [Amazon Elastic Container Registry](https://docs.aws.amazon.com/eventbridge/latest/userguide/event-types.html#ecr-event-types) Events.

1. (Optional) Verwenden Sie den folgenden YAML-Snippet, um einen Eingangstransformator mit Quellüberschreibungen für eine bestimmte Bild-ID zu konfigurieren. Im folgenden Beispiel wird eine Überschreibung konfiguriert, wobei:
   + `Source`In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht aus dem Quellereignis abgeleitet wurde. `actionName`
   + `IMAGE_DIGEST`In diesem Beispiel handelt es sich um den dynamischen Wert, der bei der Pipelineerstellung definiert wurde und nicht aus dem Quellereignis abgeleitet wurde. `revisionType`
   + In diesem Beispiel wird < *revisionValue* > von der Quellereignisvariablen abgeleitet. `revisionValue`

   ```
   ---
   Rule: my-rule
   Targets:
   - Id: MyTargetId
     Arn: ARN
     InputTransformer:
       InputPathsMap:
         revisionValue: "$.detail.image-digest"
       InputTemplate:
         sourceRevisions:
           actionName: Source
           revisionType: IMAGE_DIGEST
           revisionValue: '<revisionValue>'
   ```

1. Speichern Sie die aktualisierte Vorlage auf Ihrem lokalen Computer und öffnen Sie die CloudFormation -Konsole.

1. Wählen Sie Ihren Stack aus und klicken Sie auf **Create Change Set for Current Stack (Änderungssatz für laufenden Stack erstellen)**. 

1. Laden Sie die Vorlage hoch und zeigen Sie dann die in CloudFormation aufgeführten Änderungen an. Dies sind die Änderungen, die am Stack vorgenommen werden sollen. Ihre neuen Ressourcen sollten in der Liste angezeigt werden. 

1. Wählen Sie **Ausführen**.