

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.

# Tutorial: Erstellen Sie eine Pipeline, die Variablen von verwendet AWS CloudFormation Aktionen zur Bereitstellung
<a name="tutorials-cloudformation-action"></a>

In diesem Tutorial verwenden Sie die AWS CodePipeline Konsole, um eine Pipeline mit einer Bereitstellungsaktion zu erstellen. Wenn die Pipeline ausgeführt wird, erstellt die Vorlage einen Stack und auch eine `outputs`-Datei. Die von der Stack-Vorlage generierten Ausgaben sind die Variablen, die durch die AWS CloudFormation Aktion in generiert wurden CodePipeline.

In der Aktion, in der Sie den Stack aus der Vorlage erstellen, legen Sie einen Variablen-Namespace fest. Die Variablen, die von der `outputs`-Datei erzeugt werden, können dann durch nachfolgende Aktionen verwendet werden. In diesem Beispiel erstellen Sie einen Änderungssatz, der auf der von der AWS CloudFormation Aktion erzeugten `StackName` Variablen basiert. Nach einer manuellen Genehmigung führen Sie den Änderungssatz aus und erstellen dann eine Stack-Löschaktion, die den Stack basierend auf der `StackName`-Variablen löscht.

**Wichtig**  
Im Rahmen der Erstellung einer Pipeline wird ein vom Kunden bereitgestellter S3-Artefakt-Bucket von CodePipeline for Artifacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto als dem Konto für Ihre Pipeline befindet, stellen Sie sicher, dass der S3-Artefakt-Bucket dem Konto gehört AWS-Konten , das sicher und zuverlässig ist.

**Topics**
+ [Voraussetzungen: Erstellen Sie eine AWS CloudFormation Servicerolle und ein CodeCommit Repository](#tutorials-cloudformation-action-prereq)
+ [Schritt 1: Laden Sie das Beispiel herunter, bearbeiten Sie es und laden Sie es hoch AWS CloudFormation Vorlage](#tutorials-cloudformation-action-upload)
+ [Schritt 2: Erstellen der Pipeline](#tutorials-cloudformation-action-pipeline)
+ [Schritt 3: Fügen Sie eine hinzu CloudFormation Bereitstellungsaktion zum Erstellen des Änderungssatzes](#tutorials-cloudformation-action-changeset)
+ [Schritt 4: Hinzufügen einer manuellen Genehmigungsaktion](#tutorials-cloudformation-action-approval)
+ [Schritt 5: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz auszuführen](#tutorials-cloudformation-action-deployment)
+ [Schritt 6: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Stapel zu löschen](#tutorials-cloudformation-action-delete)

## Voraussetzungen: Erstellen Sie eine AWS CloudFormation Servicerolle und ein CodeCommit Repository
<a name="tutorials-cloudformation-action-prereq"></a>

Sie müssen bereits über Folgendes verfügen:
+ Ein CodeCommit Repositorium. Sie können das AWS CodeCommit Repository verwenden, in dem Sie es erstellt haben[Tutorial: Eine einfache Pipeline (CodeCommit Repository) erstellen](tutorials-simple-codecommit.md).
+ In diesem Beispiel wird ein Amazon DocumentDB-Stack aus einer Vorlage erstellt. Sie müssen AWS Identity and Access Management (IAM) verwenden, um eine AWS CloudFormation Servicerolle mit den folgenden Berechtigungen für Amazon DocumentDB zu erstellen.

  ```
  "rds:DescribeDBClusters",
  "rds:CreateDBCluster",
  "rds:DeleteDBCluster",
  "rds:CreateDBInstance"
  ```

## Schritt 1: Laden Sie das Beispiel herunter, bearbeiten Sie es und laden Sie es hoch AWS CloudFormation Vorlage
<a name="tutorials-cloudformation-action-upload"></a>

Laden Sie die AWS CloudFormation Beispielvorlagendatei herunter und laden Sie sie in Ihr CodeCommit Repository hoch.

1. Navigiere zur Beispielvorlage für deine Region. Verwenden Sie beispielsweise die Tabelle unter, [https://docs.aws.amazon.com/documentdb/latest/developerguide/quick_start_cfn.html#quick_start_cfn-launch_stack](https://docs.aws.amazon.com/documentdb/latest/developerguide/quick_start_cfn.html#quick_start_cfn-launch_stack) um die Region auszuwählen und die Vorlage herunterzuladen. Laden Sie die Vorlage für einen Amazon DocumentDB-Cluster herunter. Der Dateiname lautet `documentdb_full_stack.yaml`.

1. Entpacken Sie die `documentdb_full_stack.yaml`-Datei, und öffnen Sie sie in einem Texteditor. Nehmen Sie die folgenden Änderungen vor.

   1. Fügen Sie in diesem Beispiel den folgenden `Purpose:`-Parameter zu Ihrem `Parameters`-Abschnitt in der Vorlage hinzu.

      ```
        Purpose:
          Type: String
          Default: testing
          AllowedValues:
            - testing
            - production
          Description: The purpose of this instance.
      ```

   1. Fügen Sie in diesem Beispiel die folgende `StackName`-Ausgabe zu Ihrem `Outputs:`-Abschnitt in der Vorlage hinzu.

      ```
        StackName:
          Value: !Ref AWS::StackName
      ```

1. Laden Sie die Vorlagendatei in Ihr AWS CodeCommit Repository hoch. Sie müssen die entpackte und bearbeitete Vorlagendatei in das Stammverzeichnis Ihres Repositorys hochladen. 

   So verwendest du die CodeCommit Konsole, um deine Dateien hochzuladen: 

   1. Öffnen Sie die CodeCommit Konsole und wählen Sie Ihr Repository aus der ** ** Repository-Liste aus.

   1. Wählen Sie **Add file (Datei hinzufügen)** und dann **Upload file (Datei hochladen)** aus. 

   1. Wählen Sie **Choose file (Datei auswählen)** und navigieren Sie dann zu Ihrer Datei. Übernehmen Sie die Änderung, indem Sie Ihren Benutzernamen und Ihre E-Mail-Adresse eingeben. Wählen Sie **Commit changes (Änderungen übernehmen)** aus.

   Ihre Datei sollte auf der Stammebene in Ihrem Repository wie folgt aussehen:

   ```
   documentdb_full_stack.yaml
   ```

## Schritt 2: Erstellen der Pipeline
<a name="tutorials-cloudformation-action-pipeline"></a>

In diesem Abschnitt erstellen Sie eine Pipeline mit den folgenden Aktionen:
+ Eine Quellphase mit einer CodeCommit Aktion, bei der das Quellartefakt Ihre Vorlagendatei ist.
+ Eine Bereitstellungsphase mit einer CloudFormation Bereitstellungsaktion.

Jeder Aktion in der Quell- und Bereitstellungsstufe, die vom Assistenten erstellt wurde, wird jeweils ein Variablen-Namespace, `SourceVariables`, und `DeployVariables` zugewiesen. Da den Aktionen ein Namespace zugewiesen ist, stehen die in diesem Beispiel konfigurierten Variablen für nachgelagerte Aktionen zur Verfügung. Weitere Informationen finden Sie unter [Variablenreferenz](reference-variables.md).

**So erstellen Sie mit dem Assistenten eine Pipeline**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter [ http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Wählen sie auf der Seite **Welcome (Willkommen)** die Option **Getting started (Erste Schritte)** aus, oder auf der Seite **Pipelines** die Option **Create pipeline (Pipeline erstellen)**.

1. Wählen Sie auf der ** Seite ** Schritt 1: Erstellungsoption auswählen unter ** Erstellungsoptionen ** die ** Option Benutzerdefinierte Pipeline ** erstellen aus. Wählen Sie **Weiter** aus.

1. Geben Sie auf ** Schritt 2: Wählen Sie die Pipeline-Einstellungen aus ** und geben Sie im Feld ** Pipeline-Name ** den Wert ein**MyCFNDeployPipeline**.

1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in ihren Eigenschaften und ihrem Preis unterscheiden. Der Typ V2 ist der einzige Typ, den Sie in der Konsole auswählen können. Weitere Informationen finden Sie unter [Pipeline-Typen](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Informationen zur Preisgestaltung für finden Sie CodePipeline unter [ Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

1. Führen Sie unter **Service role** (Service-Rolle) einen der folgenden Schritte aus:
   + Wählen Sie ** Neue Servicerolle**, um CodePipeline die Erstellung einer Servicerolle in IAM zu ermöglichen.
   + Wählen Sie **Existing service role (Vorhandene Servicerolle)**. Wählen Sie unter **Name der Rolle** in der Liste Ihre Servicerolle aus.

1. Unter **Artifact store (Artefaktspeicher)**: 

   1. Wählen Sie ** Standardspeicherort, ** um den Standard-Artefaktspeicher, wie z. B. den Amazon S3-Artefakt-Bucket, der als Standard festgelegt wurde, für Ihre Pipeline in der Region zu verwenden, die Sie für Ihre Pipeline ausgewählt haben.

   1. Wählen Sie ** Benutzerdefinierter Standort, ** wenn Sie bereits einen Artefaktspeicher haben, z. B. einen Amazon S3-Artefakt-Bucket, in derselben Region wie Ihre Pipeline.
**Anmerkung**  
Dabei handelt es sich nicht um den Quell-Bucket für Ihren Quellcode, sondern um den Artefaktspeicher für Ihre Pipeline. Für jede Pipeline benötigen Sie einen separaten Artefaktspeicher, z. B. einen S3 Bucket. Wenn Sie eine Pipeline erstellen oder bearbeiten, benötigen Sie einen Artefakt-Bucket in der Pipeline-Region und einen Artefakt-Bucket pro AWS Region, in der Sie eine Aktion ausführen.  
Weitere Informationen erhalten Sie unter [Eingabe- und Ausgabe-Artefakte](welcome-introducing-artifacts.md) und [CodePipeline Referenz zur Pipeline-Struktur](reference-pipeline-structure.md).

   Wählen Sie **Weiter** aus.

1. In ** Schritt 3: Quellstufe hinzufügen: ** 

   1. Wählen Sie unter **Source provider (Quell-Anbieter)** die Option **AWS CodeCommit**.

   1. Wählen Sie unter ** Repository-Name ** den Namen des CodeCommit Repositorys aus, in dem Sie erstellt haben[Schritt 1: Erstelle ein CodeCommit Repository](tutorials-simple-codecommit.md#codecommit-create-repository).

   1. Wählen Sie in **Branch name** den Namen des Branch aus, der das neueste Code-Update enthält.

   Nachdem Sie den Repository-Namen und den Branch ausgewählt haben, wird die Amazon CloudWatch Events-Regel angezeigt, die für diese Pipeline erstellt werden muss. 

   Wählen Sie **Weiter** aus.

1. Wählen Sie in ** Schritt 4: Build-Phase ** hinzufügen die Option Build-Phase ** überspringen aus und akzeptieren Sie dann die Warnmeldung**, indem Sie ** erneut ** Skip auswählen. 

   Wählen Sie **Weiter** aus.

1. Wählen Sie in ** Schritt 5: Testphase ** hinzufügen die Option Testphase ** überspringen aus und akzeptieren Sie dann die Warnmeldung**, indem Sie ** erneut ** Überspringen auswählen. 

   Wählen Sie **Weiter** aus.

1. In ** Schritt 6: Bereitstellungsphase hinzufügen**:

   1. Wählen Sie unter **Action name (Aktionsname)** die Option **Deploy (Bereitstellen)**. Wählen Sie unter **Deploy provider (Bereitstellungsanbieter)** die Option **CloudFormation** aus.

   1. Wählen Sie unter **Action mode (Aktionsmodus)** **Create or update a stack (Einen Stack erstellen oder aktualisieren)** aus.

   1. Geben Sie unter **Stack name (Stack-Name)** einen Namen für den Stapel ein. Dies ist der Name des Stacks, den die Vorlage erstellt.

   1. Geben Sie unter **Output file name (Ausgabedateiname)** einen Namen für die Ausgabedatei ein, z. B. **outputs**. Dies ist der Name der Datei, die durch die Aktion erstellt wird, nachdem der Stack erstellt wurde.

   1. Erweitern Sie **Advanced (Erweitert)**. Geben Sie unter **Parameter overrides (Parameterüberschreibungen)** Ihre Vorlagenüberschreibungen als Schlüssel-Wert-Paare ein. Diese Vorlage erfordert beispielsweise die folgenden Überschreibungen.

      ```
      {
      "DBClusterName": "MyDBCluster",
      "DBInstanceName": "MyDBInstance",
      "MasterUser": "{{UserName}}",
      "MasterPassword": "{{Password}}",
      "DBInstanceClass": "db.r4.large",
      "Purpose": "testing"}
      ```

      Wenn Sie keine Überschreibungen eingeben, erstellt die Vorlage einen Stack mit Standardwerten.

   1. Wählen Sie **Weiter** aus.

   1. Wählen Sie in ** Schritt 7: Überprüfen ** die Option Pipeline ** erstellen aus**. Sie sollten ein Diagramm sehen, das die Phasen der Pipeline zeigt. Lassen Sie die Ausführung Ihrer Pipeline zu. Ihre zweistufige Pipeline ist damit vollständig und bereit für die zusätzlichen Stufen , die hinzugefügt werden sollen.

## Schritt 3: Fügen Sie eine hinzu CloudFormation Bereitstellungsaktion zum Erstellen des Änderungssatzes
<a name="tutorials-cloudformation-action-changeset"></a>

Erstellen Sie eine nächste Aktion in Ihrer Pipeline, die es ermöglicht CloudFormation , den Änderungssatz vor der manuellen Genehmigungsaktion zu erstellen.



1. Öffnen Sie die CodePipeline Konsole unter [ https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   Wählen Sie unter **Pipelines** Ihre Pipeline und dann **View (Anzeigen)** aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

1. Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus **Edit (Bearbeiten)** fort.

1. Wählen Sie, ob Sie die ** ** Bereitstellungsphase bearbeiten möchten.

1. Fügen Sie eine Bereitstellungsaktion hinzu, die einen Änderungssatz für den Stack erstellt, der in der vorherigen Aktion erstellt wurde. Sie fügen diese Aktion nach der vorhandenen Aktion in der Phase hinzu.

   1. Geben Sie im Feld ** Aktionsname ** den Wert ein ** Change\_Set**. Wählen Sie im ** Feld Aktionsanbieter ** die Option aus **AWS CloudFormation **.

   1. Wählen Sie im ** Feld Eingabeartefakt ** die Option aus ** SourceArtifact**.

   1. Wählen Sie unter **Action mode (Aktionsmodus)** die Option **Create or replace a change set (Einen Änderungssatz erstellen oder ersetzen)** aus.

   1. Geben Sie unter **Stack name (Stack-Name)** die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, für den der Änderungssatz erstellt wird, wobei der Standard-Namespace `DeployVariables` der Aktion zugewiesen wird.

      ```
      #{DeployVariables.StackName}
      ```

   1. Geben Sie unter **Change set name (Name des Änderungssatzes)** den Namen des Änderungssatzes ein.

      ```
      my-changeset
      ```

   1. Ändern Sie unter **Parameter overrides (Parameterüberschreibungen)** den `Purpose`-Parameter von `testing` zu `production`.

      ```
      {
      "DBClusterName": "MyDBCluster",
      "DBInstanceName": "MyDBInstance",
      "MasterUser": "UserName",
      "MasterPassword": "Password",
      "DBInstanceClass": "db.r4.large",
      "Purpose": "production"}
      ```

   1. Wählen Sie **Done (Fertig)**, um die Aktion zu speichern.

## Schritt 4: Hinzufügen einer manuellen Genehmigungsaktion
<a name="tutorials-cloudformation-action-approval"></a>

Erstellen Sie eine manuelle Genehmigungsaktion in Ihrer Pipeline.



1. Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus **Edit (Bearbeiten)** fort.

1. Wählen Sie, ob Sie die ** ** Bereitstellungsphase bearbeiten möchten.

1. Fügen Sie nach der Bereitstellungsaktion, die den Änderungssatz erstellt, eine manuelle Genehmigungsaktion hinzu. Mit dieser Aktion können Sie den erstellten Ressourcenänderungssatz überprüfen, CloudFormation bevor die Pipeline den Änderungssatz ausführt.

## Schritt 5: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz auszuführen
<a name="tutorials-cloudformation-action-deployment"></a>

Erstellen Sie eine nächste Aktion in Ihrer Pipeline, die es CloudFormation ermöglicht, den Änderungssatz nach der manuellen Genehmigungsaktion auszuführen.



1. Öffnen Sie die CodePipeline Konsole unter [ https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   Wählen Sie unter **Pipelines** Ihre Pipeline und dann **View (Anzeigen)** aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

1. Wählen Sie, ob Sie die Pipeline bearbeiten möchten, oder fahren Sie mit der Anzeige der Pipeline im Modus **Edit (Bearbeiten)** fort.

1. Wählen Sie, ob Sie die ** ** Bereitstellungsphase bearbeiten möchten.

1. Fügen Sie eine Bereitstellungsaktion hinzu, mit der der Änderungssatz ausgeführt wird, der in der vorherigen manuellen Aktion genehmigt wurde:

   1. Geben Sie im Feld ** Aktionsname ** den Wert ein ** Execute\_Change\_Set**. Wählen Sie im ** Feld Aktionsanbieter ** die Option aus **AWS CloudFormation**.

   1. Wählen Sie im ** Feld Eingabeartefakt ** die Option aus ** SourceArtifact**.

   1. Wählen Sie unter **Action mode (Aktionsmodus)** die Option **Execute a change set (Einen Änderungssatz ausführen)**.

   1. Geben Sie unter **Stack name (Stack-Name)** die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, für den der Änderungssatz erstellt wird.

      ```
      #{DeployVariables.StackName}
      ```

   1. Geben Sie unter **Change set name (Name des Änderungssatzes)** den Namen des Änderungssatzes ein, den Sie in der vorherigen Aktion erstellt haben.

      ```
      my-changeset
      ```

   1. Wählen Sie **Done (Fertig)**, um die Aktion zu speichern.

   1. Fahren Sie mit der Pipeline-Ausführung fort.

## Schritt 6: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Stapel zu löschen
<a name="tutorials-cloudformation-action-delete"></a>

Erstellen Sie eine letzte Aktion in Ihrer Pipeline, die es CloudFormation ermöglicht, den Stacknamen aus der Variablen in der Ausgabedatei abzurufen und den Stack zu löschen.



1. Öffnen Sie die CodePipeline Konsole unter [ https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   Wählen Sie unter **Pipelines** Ihre Pipeline und dann **View (Anzeigen)** aus. Das Diagramm zeigt die Quell- und Bereitstellungsphase Ihrer Pipeline an.

1. Wählen Sie diese Option, um die Pipeline zu bearbeiten.

1. Wählen Sie, ob Sie die ** ** Bereitstellungsphase bearbeiten möchten.

1. Fügen Sie eine Bereitstellungsaktion hinzu, die den Stack löscht:

   1. Wählen Sie ** unter Aktionsname ** die Option aus ** DeleteStack**. Wählen Sie unter **Deploy provider (Bereitstellungsanbieter)** die Option **CloudFormation** aus.

   1. Wählen Sie unter **Action mode (Aktionsmodus)** die Option **Delete a Stack (Stack löschen)** aus.

   1. Geben Sie unter **Stack name (Stack-Name)** die Variablensyntax ein, wie hier gezeigt. Dies ist der Name des Stacks, den die Aktion löschen wird.

   1. Wählen Sie **Done (Fertig)**, um die Aktion zu speichern.

   1. Wählen Sie **Save (Speichern)**, um die Pipeline zu speichern.

   Die Pipeline wird ausgeführt, wenn sie gespeichert wird.