

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.

# Fügen Sie eine regionsübergreifende Aktion hinzu in CodePipeline
<a name="actions-create-cross-region"></a>

AWS CodePipeline umfasst eine Reihe von Aktionen, mit denen Sie Ressourcen für Ihren automatisierten Release-Prozess konfigurieren, testen und bereitstellen können. Sie können Ihrer Pipeline Aktionen hinzufügen, die sich in einer anderen AWS Region als Ihrer Pipeline befinden. Wenn an der Anbieter für eine Aktion AWS-Service ist und sich dieser type/provider Aktionstyp in einer anderen AWS Region als Ihre Pipeline befindet, handelt es sich um eine regionsübergreifende Aktion. 

**Anmerkung**  
Regionalübergreifende Aktionen werden unterstützt und können nur in den AWS Regionen erstellt werden, in denen dies unterstützt CodePipeline wird. Eine Liste der unterstützten AWS Regionen für finden Sie CodePipeline unter[Kontingente in AWS CodePipeline](limits.md).

Sie können die Konsole oder verwenden AWS CLI, CloudFormation um regionsübergreifende Aktionen in Pipelines hinzuzufügen.

**Anmerkung**  
Bestimmte Aktionstypen in sind CodePipeline möglicherweise nur in bestimmten AWS Regionen verfügbar. Beachten Sie auch, dass es AWS Regionen geben kann, in denen ein Aktionstyp verfügbar ist, ein bestimmter AWS Anbieter für diesen Aktionstyp jedoch nicht verfügbar ist.

Wenn Sie eine Pipeline erstellen oder bearbeiten, müssen Sie einen Artefakt-Bucket in der Pipelineregion haben, sowie einen Artefakt-Bucket für jede Region, in der Sie eine Aktion ausführen möchten. Weitere Informationen zum Parameter `ArtifactStores` erhalten Sie unter [CodePipeline Referenz zur Pipeline-Struktur](reference-pipeline-structure.md).

**Anmerkung**  
CodePipeline verarbeitet das Kopieren von Artefakten von einer AWS Region in die anderen Regionen, wenn regionsübergreifende Aktionen ausgeführt werden.

Wenn Sie die Konsole verwenden, um eine Pipeline oder regionsübergreifende Aktionen zu erstellen, werden Standardartefakt-Buckets CodePipeline in den Regionen konfiguriert, in denen Sie Aktionen haben. Wenn Sie das AWS CLI, oder ein SDK verwenden CloudFormation, um eine Pipeline oder regionsübergreifende Aktionen zu erstellen, geben Sie den Artefakt-Bucket für jede Region an, in der Sie Aktionen haben. 

**Anmerkung**  
Sie müssen den Artefakt-Bucket und den Verschlüsselungsschlüssel in derselben AWS Region wie die regionsübergreifende Aktion und in demselben Konto wie Ihre Pipeline erstellen.

Für die folgenden Aktionstypen können Sie keine regionsübergreifenden Aktionen erstellen:
+ Quellaktionen
+ Drittanbieteraktionen
+ Benutzerdefinierte Aktionen

**Anmerkung**  
Wenn Sie die regionsübergreifende Lambda-Aufrufaktion in verwenden CodePipeline, [PutJobFailureResult](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobFailureResult.html)sollte der Status der Lambda-Ausführung mithilfe von [PutJobSuccessResult](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_PutJobSuccessResult.html)und an die Region gesendet werden, in der die Lambda-Funktion vorhanden ist, und nicht an die AWS Region, in der sie existiert. CodePipeline 

Wenn eine Pipeline eine regionsübergreifende Aktion als Teil einer Phase enthält, werden nur die Eingabeartefakte der regionsübergreifenden Aktion von der Pipeline-Region in die Region der Aktion CodePipeline repliziert.

**Anmerkung**  
Die Pipeline-Region und die Region, in der Ihre Ressourcen zur Erkennung von CloudWatch Events-Änderungen verwaltet werden, bleiben unverändert. Die Region, in der Ihre Pipeline gehostet wird, ändert sich nicht.



## Verwalten von regionsübergreifenden Aktionen in einer Pipeline (Konsole)
<a name="actions-cross-region-console"></a>

Sie können die CodePipeline Konsole verwenden, um einer vorhandenen Pipeline eine regionsübergreifende Aktion hinzuzufügen. Zur Erstellung einer neuen Pipeline mit regionsübergreifenden Aktionen mithilfe des Assistenten zum Erstellen einer Pipeline vgl. [Erstellen Sie eine benutzerdefinierte Pipeline (Konsole)](pipelines-create.md#pipelines-create-console).

In der Konsole erstellen Sie eine regionsübergreifende Aktion in einer Pipeline-Phase, indem Sie den Anbieter der Aktion und das Feld **Region** auswählen, das die von Ihnen in der jeweiligen Region für diesen Anbieter erstellten Ressourcen auflistet. Wenn Sie eine regionsübergreifende Aktion hinzufügen, verwendet CodePipeline einen separaten Artefakt-Bucket in der Region der Aktion. Weitere Informationen zu regionsübergreifenden Artefakt-Buckets finden Sie unter [CodePipeline Referenz zur Pipeline-Struktur](reference-pipeline-structure.md).

### Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline-Phase (Konsole)
<a name="actions-cross-region-console-add"></a>

Verwenden Sie die Konsole zum Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline.

**Anmerkung**  
Wenn die Pipeline ausgeführt wird, während Änderungen gespeichert werden, wird diese Ausführung nicht abgeschlossen.

**So fügen Sie eine regionsübergreifende Aktion hinzu**

1. Melden Sie sich unter [http://console.aws.amazon bei der Konsole an. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Wählen Sie Ihre Pipeline und dann **Edit (Bearbeiten)**.

1. Wählen Sie unten im Diagramm **\+ Add stage (Phase hinzufügen)**, wenn Sie eine neue Phase erstellen, oder **Edit stage (Phase bearbeiten)**, wenn Sie die Aktion einer bestehenden Phase hinzufügen möchten.

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** die Option **\+ Add action group (Aktionsgruppe hinzufügen)**, um eine serielle Aktion hinzuzufügen. Oder wählen Sie **\+Add action (Aktion hinzufügen)**, um eine parallele Aktion hinzuzufügen.

1. Führen Sie auf der Seite **Edit action (Aktion bearbeiten)** Folgendes durch:

   1. Geben Sie unter **Action name (Aktionsname)** einen Namen für die regionsübergreifende Aktion ein.

   1. Wählen Sie unter **Action provider (Aktionsanbieter)** den Anbieter der Aktion.

   1. Wählen Sie unter **Region** die AWS Region aus, in der Sie die Ressource für die Aktion erstellt haben oder erstellen möchten. Wenn die Region ausgewählt ist, werden die verfügbaren Ressourcen für diese Region zur Auswahl aufgelistet. Das Feld **Region** gibt an, wo die AWS Ressourcen für diesen Aktionstyp und Anbietertyp erstellt werden. Dieses Feld wird nur für Aktionen angezeigt, bei denen es sich bei dem Aktionsanbieter um einen handelt. AWS-Service Das Feld **Region** ist standardmäßig auf dasselbe AWS-Region wie Ihre Pipeline eingestellt.

   1. Wählen Sie unter **Input artifacts (Eingabeartefakte)** die korrekte Eingabe aus der vorherigen Phase. Wenn es sich bei der vorherigen Phase beispielsweise um eine Quellstufe handelt, wählen Sie **SourceArtifact**.

   1. Füllen Sie alle erforderlichen Felder für den Aktionsanbieter aus, den Sie konfigurieren.

   1. Wählen Sie unter **Output artifacts (Ausgabeartefakte)** die korrekte Ausgabe zur nächsten Phase. Wenn es sich bei der nächsten Phase beispielsweise um eine Bereitstellungsphase handelt, wählen Sie **BuildArtifact**.

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

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** **Done (Fertig)**.

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

### Bearbeiten einer regionsübergreifenden Aktion in einer Pipeline-Phase (Konsole)
<a name="actions-cross-region-console-edit"></a>

Verwenden Sie die Konsole zur Bearbeitung einer vorhandenen regionsübergreifenden Aktion in einer Pipeline.

**Anmerkung**  
Wenn die Pipeline ausgeführt wird, während Änderungen gespeichert werden, wird diese Ausführung nicht abgeschlossen.

**So bearbeiten Sie eine regionsübergreifende Aktion**

1. Melden Sie sich unter [https://console.aws.amazon.com/codesuite/codepipeline/home.](https://console.aws.amazon.com/codesuite/codepipeline/home.) bei der Konsole an.

1. Wählen Sie Ihre Pipeline und dann **Edit (Bearbeiten)**.

1. Wählen Sie **Edit stage (Phase bearbeiten)**.

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** das Symbol zur Bearbeitung einer vorhandenen Aktion.

1. Nehmen Sie auf der Seite **Edit action (Aktion bearbeiten)** die erforderlichen Änderungen an den Feldern vor.

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** **Done (Fertig)**.

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

### Löschen einer regionsübergreifenden Aktion aus einer Pipeline-Phase (Konsole)
<a name="actions-cross-region-console-delete"></a>

Verwenden Sie die Konsole zum Löschen einer vorhandenen regionsübergreifenden Aktion aus einer Pipeline.

**Anmerkung**  
Wenn die Pipeline ausgeführt wird, während Änderungen gespeichert werden, wird diese Ausführung nicht abgeschlossen.

**So löschen Sie eine regionsübergreifende Aktion**

1. Melden Sie sich unter [http://console.aws.amazon bei der Konsole an. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Wählen Sie Ihre Pipeline und dann **Edit (Bearbeiten)**.

1. Wählen Sie **Edit stage (Phase bearbeiten)**.

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** das Symbol zum Löschen einer vorhandenen Aktion.

1. Wählen Sie unter **Edit: <Stage> (Bearbeiten: <Phase>)** **Done (Fertig)**.

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

## Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (CLI)
<a name="actions-cross-region-cli"></a>

Sie können die verwenden AWS CLI , um einer vorhandenen Pipeline eine regionsübergreifende Aktion hinzuzufügen.

Um eine regionsübergreifende Aktion in einer Pipeline-Phase mit dem zu erstellen AWS CLI, fügen Sie die Konfigurationsaktion zusammen mit einem optionalen `region` Feld hinzu. Außerdem müssen Sie bereits einen Artefakt-Bucket in der Region der Aktion erstellt haben. Anstatt den Parameter `artifactStore` der Einzelregionpipeline anzugeben, verwenden Sie den Parameter `artifactStores`, um eine Liste der Artefakt-Buckets jeder Region einzufügen.

**Anmerkung**  
In dieser exemplarischen Vorgehensweise und den zugehörigen Beispielen {{RegionA}} ist die Region angegeben, in der die Pipeline erstellt wurde. Es hat Zugriff auf den {{RegionA}} Amazon S3 S3-Bucket, der zum Speichern von Pipeline-Artefakten verwendet wird, und auf die Servicerolle, die von verwendet wird CodePipeline. {{RegionB}}ist die Region, in der die CodeDeploy Anwendung, die Bereitstellungsgruppe und die von verwendete CodeDeploy Servicerolle erstellt werden. 

### Voraussetzungen
<a name="actions-create-cross-region-prereq"></a>

Sie müssen Folgendes erstellt haben:
+ Eine Pipeline in{{RegionA}}. 
+ Ein Amazon S3 S3-Artefakt-Bucket ist drin{{RegionB}}. 
+ Die Ressourcen für Ihre Aktion, z. B. Ihre CodeDeploy Anwendung und Ihre Bereitstellungsgruppe für eine regionsübergreifende Bereitstellungsaktion, in. {{RegionB}}

### Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (CLI)
<a name="actions-create-cross-region-cli"></a>

Verwenden Sie die AWS CLI , um einer Pipeline eine regionsübergreifende Aktion hinzuzufügen.

**So fügen Sie eine regionsübergreifende Aktion hinzu**

1. Führen Sie für eine Pipeline in den **get-pipeline** Befehl aus{{RegionA}}, um die Pipeline-Struktur in eine JSON-Datei zu kopieren. Geben Sie für eine Pipeline mit dem Namen `MyFirstPipeline` den folgenden Befehl ein: 

   ```
   aws codepipeline get-pipeline --name {{MyFirstPipeline}} >{{pipeline.json}}
   ```

   Dieser Befehl gibt nichts zurück. Die erstellte Datei sollte jedoch in dem Verzeichnis auftauchen, in dem Sie den Befehl ausgeführt haben.

1. Fügen Sie das Feld `region` zum Hinzufügen einer neuen Phase mit Ihrer regionsübergreifenden Aktion hinzu, die die Region und Ressourcen für Ihre Aktion enthält. Das folgende JSON-Beispiel fügt eine Bereitstellungsphase mit einer regionsübergreifenden Bereitstellungsaktion hinzu CodeDeploy, in der sich der Anbieter in einer neuen Region `us-east-1` befindet.

   ```
    {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "{{RegionB}}",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "{{name}}",
                               "DeploymentGroupName": "{{name}}"
                           },
                           "runOrder": 1
                       }
   ```

1. Entfernen Sie in der Pipeline-Struktur das `artifactStore`-Feld und fügen Sie die `artifactStores`-Zuweisung für Ihre neue regionsübergreifende Aktion hinzu. Die Zuordnung muss einen Eintrag für jede AWS Region enthalten, in der Sie Aktionen haben. Für jeden Eintrag in der Zuordnung müssen sich die Ressourcen in der jeweiligen AWS Region befinden. Im folgenden Beispiel `ID-A` ist dies die Verschlüsselungsschlüssel-ID für {{RegionA}} und `ID-B` ist die Verschlüsselungsschlüssel-ID für{{RegionB}}.

   ```
   "artifactStores":{  
      "{{RegionA}}":{  
         "{{encryptionKey}}":{  
            "id":"{{ID-A}}",
            "type":"KMS"
         },
         "location":"{{Location1}}",
         "type":"S3"
      },
      "{{RegionB}}":{  
         "{{encryptionKey}}":{  
            "id":"{{ID-B}}",
            "type":"KMS"
         },
         "location":"{{Location2}}",
         "type":"S3"
      }
   }
   ```

   Das folgende JSON-Beispiel zeigt den us-west-2-Bucket als `my-storage-bucket` und fügt den neuen us-east-1-Bucket mit dem Namen `my-storage-bucket-us-east-1` hinzu.

   ```
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           },
   ```

1. Wenn Sie mit einer Pipeline-Struktur arbeiten, die Sie mit dem Befehl **get-pipeline** abgerufen haben, müssen Sie die `metadata`-Zeilen aus der JSON-Datei entfernen. Andernfalls kann der **update-pipeline**-Befehl sie nicht nutzen. Entfernen Sie die `"metadata": { }`-Zeilen und die Felder `"created"`, `"pipelineARN"` und `"updated"`.

   Entfernen Sie z. B. die folgenden Zeilen aus der Struktur: 

   ```
   "metadata": {  
     "pipelineArn": "arn:aws:codepipeline:{{region}}:{{account-ID}}:{{pipeline-name}}",
     "created": "{{date}}",
     "updated": "{{date}}"
     }
   ```

   Speichern Sie die Datei.

1. Um Ihre Änderungen zu übernehmen, führen Sie den Befehl **update-pipeline** aus und geben Sie die Pipeline-JSON-Datei an:
**Wichtig**  
Achten Sie darauf, dass `file://` vor dem Dateinamen steht. Dies ist bei diesem Befehl erforderlich.

   ```
   aws codepipeline update-pipeline --cli-input-json file://{{pipeline.json}}
   ```

   Dieser Befehl gibt die gesamte Struktur der bearbeiteten Pipeline zurück. Die Ausgabe sieht folgendermaßen oder ähnlich aus.

   ```
   {
       "pipeline": {
           "version": 4,
           "roleArn": "{{ARN}}",
           "stages": [
               {
                   "name": "Source",
                   "actions": [
                       {
                           "inputArtifacts": [],
                           "name": "Source",
                           "actionTypeId": {
                               "category": "Source",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeCommit"
                           },
                           "outputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "configuration": {
                               "PollForSourceChanges": "false",
                               "BranchName": "main",
                               "RepositoryName": "MyTestRepo"
                           },
                           "runOrder": 1
                       }
                   ]
               },
               {
                   "name": "Deploy",
                   "actions": [
                       {
                           "inputArtifacts": [
                               {
                                   "name": "SourceArtifact"
                               }
                           ],
                           "name": "Deploy",
                           "region": "us-east-1",
                           "actionTypeId": {
                               "category": "Deploy",
                               "owner": "AWS",
                               "version": "1",
                               "provider": "CodeDeploy"
                           },
                           "outputArtifacts": [],
                           "configuration": {
                               "ApplicationName": "{{name}}",
                               "DeploymentGroupName": "{{name}}"
                           },
                           "runOrder": 1
                       }
                   ]
               }
           ],
           "name": "AnyCompanyPipeline",
           "artifactStores": {
               "us-west-2": {
                   "type": "S3",
                   "location": "my-storage-bucket"
               },
               "us-east-1": {
                   "type": "S3",
                   "location": "my-storage-bucket-us-east-1"
               }
           }
       }
   }
   ```
**Anmerkung**  
Der Befehl **update-pipeline** stoppt die Pipeline. Wenn eine Revision über die Pipeline ausgeführt wird, wenn Sie den Befehl **update-pipeline** ausführen, wird diese Ausführung gestoppt. Sie müssen die Ausführung der Pipeline manuell starten, um die Revision über die aktualisierte Pipeline auszuführen. Verwenden Sie den **`start-pipeline-execution`**-Befehl, um Ihre Pipeline manuell zu starten.

1. Nachdem Sie Ihre Pipeline aktualisiert haben, wird die regionsübergreifende Aktion in der Konsole angezeigt.  
![Ein umfassender Überblick über eine Pipeline mit einer regionsübergreifenden Aktion](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/cross-region-icon.png)

## Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (CloudFormation)
<a name="actions-create-cross-region-cfn"></a>

Sie können sie verwenden CloudFormation , um einer vorhandenen Pipeline eine regionsübergreifende Aktion hinzuzufügen.

**Um eine regionsübergreifende Aktion hinzuzufügen mit CloudFormation**

1. Fügen Sie den `Region`-Parameter der `ActionDeclaration`-Ressource in Ihrer Vorlage hinzu, wie in diesem Beispiel gezeigt:

   ```
   ActionDeclaration:
                 Type: Object
                 Properties:
                   ActionTypeId:
                     Type: ActionTypeId
                     Required: true
                   Configuration:
                     Type: Map
                   InputArtifacts:
                     Type: Array
                     ItemType:
                       Type: InputArtifact
                   Name:
                     Type: String
                     Required: true
                   OutputArtifacts:
                     Type: Array
                     ItemType:
                       Type: OutputArtifact
                   RoleArn:
                     Type: String
                   RunOrder:
                     Type: Integer
                   {{Region:}}
                     {{Type: String}}
   ```

1. Fügen Sie unter `Mappings` die Regionskarte, wie in diesem Beispiel gezeigt, für eine Zuordnung mit dem Namen `SecondRegionMap` hinzu, die Werte für die Schlüssel `RegionA` und `RegionB` zuordnet. Fügen Sie unter der `Pipeline`-Ressource dem `artifactStore`-Feld die `artifactStores`-Zuweisung für Ihre neue regionsübergreifende Aktion wie folgt hinzu:

   ```
   Mappings:
     SecondRegionMap:
       {{RegionA}}:
         SecondRegion: "{{RegionB}}"
       {{RegionB}}:
         SecondRegion: "{{RegionA}}"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: {{RegionB}}
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-{{RegionB}}
                 -
                   Region: {{RegionA}}
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-{{RegionA}}
   ```

   Das folgende YAML-Beispiel zeigt den {{RegionA}} Bucket als `us-west-2` und fügt den neuen {{RegionB}} Bucket hinzu: `eu-central-1`

   ```
   Mappings:
     SecondRegionMap:
       us-west-2:
         SecondRegion: "eu-central-1"
       eu-central-1:
         SecondRegion: "us-west-2"
   
   ...
   
             Properties:
               ArtifactStores:
                 -
                   Region: eu-central-1
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-eu-central-1
                 -
                   Region: us-west-2
                   ArtifactStore:
                     Type: "S3"
                     Location: test-cross-region-artifact-store-bucket-us-west-2
   ```

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**.