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.
Hinzufügen einer regionsübergreifenden Aktion in CodePipeline
AWS CodePipeline enthält eine Reihe von Aktionen, die Ihnen beim Konfigurieren von Entwicklungs-, Test- und Bereitstellungsressourcen für Ihr automatisiertes Freigabeverfahren helfen. Sie können Ihrer Pipeline Aktionen hinzufügen, die sich in einer anderenAWS Region als Ihrer Pipeline befinden. Wenn an der Anbieter für eine AktionAWS-Service ist und sich dieser Aktionstyp/Anbietertyp in einer anderenAWS Region als Ihrer Pipeline befindet, handelt es sich um eine regionsübergreifende Aktion.
Anmerkung
Regionalübergreifende Aktionen werden unterstützt und können nur in denAWS Regionen ins Leben gerufen werden, in denenCodePipeline dies unterstützt wird. Eine Liste der unterstütztenAWS Regionen fürCodePipeline finden Sie unterKontingente in AWS CodePipeline.
Sie können die Konsole, die AWS CLI oder AWS CloudFormation verwenden, um regionsübergreifende Aktionen in Pipelines hinzuzufügen.
Anmerkung
Bestimmte Aktionstypen sindCodePipeline möglicherweise nur in bestimmtenAWS Regionen verfügbar. Beachten Sie auch, dass esAWS Regionen geben kann, in denen ein Aktionstyp verfügbar ist, ein bestimmterAWS 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.
Anmerkung
CodePipelineübernimmt das Kopieren von Artefakten von einerAWS 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 von CodePipeline in den Regionen, in denen Sie Aktionen haben, Standard-Artefakt-Buckets erstellt. Wenn Sie die AWS CLI, AWS CloudFormation oder ein SDK zur Erstellung einer Pipeline oder von regionsübergreifenden Aktionen verwenden, 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 derselbenAWS 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 verwendenCodePipeline, PutJobFailureResultsollte der Status der Lambda-Ausführung mit dem PutJobSuccessResultund an dieAWS Region gesendet werden, in der die Lambda-Funktion vorhanden ist, und nicht an die Region, in der sieCodePipeline vorhanden ist.
Wenn eine Pipeline eine regionsübergreifende Aktion als Teil einer Stufe enthält, repliziert CodePipeline nur die Eingabe-Artefakte der regionsübergreifenden Aktion aus der Pipeline-Region in der Region der Aktion.
Anmerkung
Die Pipeline-Region und die Region, in der Ihre Ressourcen zur Erkennung vonCloudWatch Ereignisä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)
Sie können einer bestehenden Pipeline über die CodePipeline-Konsole eine regionsübergreifende Aktion hinzufügen. Zur Erstellung einer neuen Pipeline mit regionsübergreifenden Aktionen mithilfe des Assistenten zum Erstellen einer Pipeline vgl. Erstellen einer Pipeline (Konsole).
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.
Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline-Phase (Konsole)
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
-
Melden Sie sich bei der Konsole unter http://console.aws.amazon.com/codesuite/codepipeline
an. -
Wählen Sie Ihre Pipeline und dann Edit (Bearbeiten).
-
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.
-
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.
-
Führen Sie auf der Seite Edit action (Aktion bearbeiten) Folgendes durch:
-
Geben Sie unter Action name (Aktionsname) einen Namen für die regionsübergreifende Aktion ein.
-
Wählen Sie unter Action provider (Aktionsanbieter) den Anbieter der Aktion.
-
Wählen Sie unter Region dieAWS Region aus, in der Sie die Ressource für die Aktion erstellt haben oder in der Sie sie 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 dieAWS Ressourcen für diesen Aktionstyp und Anbietertyp erstellt werden. Dieses Feld wird nur für Aktionen angezeigt, bei denen der Aktionsanbieter ein istAWS-Service. Das Feld Region ist standardmäßig auf dasselbeAWS-Region wie Ihre Pipeline eingestellt.
-
Wählen Sie unter Input artifacts (Eingabeartefakte) die korrekte Eingabe aus der vorherigen Phase. Wenn es sich bei der vorherigen Phase beispielsweise um eine Quellphase handelt, wählen Sie SourceArtifact.
-
Füllen Sie alle erforderlichen Felder für den Aktionsanbieter aus, den Sie konfigurieren.
-
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.
-
Wählen Sie Speichern.
-
-
Wählen Sie unter Edit: <Stage> (Bearbeiten: <Phase>) Done (Fertig).
-
Wählen Sie Speichern.
Bearbeiten einer regionsübergreifenden Aktion in einer Pipeline-Phase (Konsole)
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
-
Melden Sie sich unter https://console.aws.amazon.com/codesuite/codepipeline/home.
bei der Konsole an. -
Wählen Sie Ihre Pipeline und dann Edit (Bearbeiten).
-
Wählen Sie Edit stage (Phase bearbeiten).
-
Wählen Sie unter Edit: <Stage> (Bearbeiten: <Phase>) das Symbol zur Bearbeitung einer vorhandenen Aktion.
-
Nehmen Sie auf der Seite Edit action (Aktion bearbeiten) die erforderlichen Änderungen an den Feldern vor.
-
Wählen Sie unter Edit: <Stage> (Bearbeiten: <Phase>) Done (Fertig).
-
Wählen Sie Speichern.
Löschen einer regionsübergreifenden Aktion aus einer Pipeline-Phase (Konsole)
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
-
Melden Sie sich bei der Konsole unter http://console.aws.amazon.com/codesuite/codepipeline
an. -
Wählen Sie Ihre Pipeline und dann Edit (Bearbeiten).
-
Wählen Sie Edit stage (Phase bearbeiten).
-
Wählen Sie unter Edit: <Stage> (Bearbeiten: <Phase>) das Symbol zum Löschen einer vorhandenen Aktion.
-
Wählen Sie unter Edit: <Stage> (Bearbeiten: <Phase>) Done (Fertig).
-
Wählen Sie Speichern.
Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (CLI)
Sie können einer bestehenden Pipeline über die AWS CLI eine regionsübergreifende Aktion hinzufügen.
Um mit der AWS CLI eine regionsübergreifende Aktion in einer Pipeline-Phase zu erstellen, fügen Sie die Konfigurationsaktion sowie ein optionales 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 Anleitung und den entsprechenden Beispielen ist RegionA
die Region, in der die Pipeline erstellt wird. Es hat Zugriff auf den Amazon S3 S3-Bucket der RegionA
, der zum Speichern von Pipeline-Artefakten verwendet wird, und auf die von verwendete ServicerolleCodePipeline. RegionB
ist die Region, in der die CodeDeploy-Anwendung, Bereitstellungsgruppe und Servicerolle, die von CodeDeploy verwendet werden, erstellt werden.
Voraussetzungen
Sie müssen Folgendes erstellt haben:
-
Eine Pipeline in
RegionA
-
Ein Amazon S3 S3-Artefakt-Bucket in
RegionB
-
Die Ressourcen für Ihre Aktion, wie etwa Ihre CodeDeploy-Anwendungs- und -Bereitstellungsgruppe für eine regionsübergreifende Bereitstellungsaktion, in
RegionB
.
Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (CLI)
Verwenden Sie die AWS CLI zum Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline.
So fügen Sie eine regionsübergreifende Aktion hinzu
-
Führen Sie für eine Pipeline in
RegionA
den Befehl get-pipeline zum Kopieren der Pipeline-Struktur in eine JSON-Datei aus. Geben Sie für eine Pipeline mit dem NamenMyFirstPipeline
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.
-
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, bei der der Anbieter CodeDeploy ist, einer neuen Regionus-east-1
hinzu.{ "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 } -
Entfernen Sie in der Pipeline-Struktur das
artifactStore
-Feld und fügen Sie dieartifactStores
-Zuweisung für Ihre neue regionsübergreifende Aktion hinzu. Das Mapping muss einen Eintrag für jedeAWS Region enthalten, in der Sie Aktionen haben. Für jeden Eintrag im Mapping müssen sich die Ressourcen in der jeweiligenAWS Region befinden. In dem Beispiel unten istID-A
die Verschlüsselungsschlüssel-ID fürRegionA
undID-B
die Verschlüsselungsschlüssel-ID fürRegionB
."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 Namenmy-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" } },
-
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.
-
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. -
Nachdem Sie Ihre Pipeline aktualisiert haben, wird die regionsübergreifende Aktion in der Konsole angezeigt.
Hinzufügen einer regionsübergreifenden Aktion zu einer Pipeline (AWS CloudFormation)
Sie können einer bestehenden Pipeline über die AWS CloudFormation eine regionsübergreifende Aktion hinzufügen.
So fügen Sie eine regionsübergreifende Aktion mit AWS CloudFormation hinzu
-
Fügen Sie den
Region
-Parameter derActionDeclaration
-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
-
Fügen Sie unter
Mappings
die Regionskarte, wie in diesem Beispiel gezeigt, für eine Zuordnung mit dem NamenSecondRegionMap
hinzu, die Werte für die SchlüsselRegionA
undRegionB
zuordnet. Fügen Sie unter derPipeline
-Ressource demartifactStore
-Feld dieartifactStores
-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
-Bucketus-west-2
und fügt den neuenRegionB
-Bucketeu-central-1
hinzu: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
-
Speichern Sie die aktualisierte Vorlage auf Ihrem lokalen Computer und öffnen Sie die AWS CloudFormation-Konsole.
-
Wählen Sie Ihren Stack aus und klicken Sie auf Create Change Set for Current Stack (Änderungssatz für laufenden Stack erstellen).
-
Laden Sie die Vorlage hoch und zeigen Sie dann die in AWS CloudFormation aufgeführten Änderungen an. Dies sind die Änderungen, die am Stack vorgenommen werden sollen. Ihre neuen Ressourcen sollten in der Liste angezeigt werden.
-
Wählen Sie Execute (Ausführen).