

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: Eine Pipeline erstellen, die Variablen aus AWS CloudFormation Bereitstellungsaktionen verwendet
<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 auf der Grundlage der durch die AWS CloudFormation Aktion erzeugten `StackName` Variablen. 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 befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.

**Topics**
+ [Voraussetzungen: Erstellen Sie eine AWS CloudFormation Servicerolle und ein CodeCommit Repository](#tutorials-cloudformation-action-prereq)
+ [Schritt 1: Laden Sie die Beispielvorlage herunter, bearbeiten Sie sie und laden Sie sie hoch AWS CloudFormation](#tutorials-cloudformation-action-upload)
+ [Schritt 2: Erstellen der Pipeline](#tutorials-cloudformation-action-pipeline)
+ [Schritt 3: Fügen Sie eine CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz zu erstellen](#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 Stack 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 Repository. Sie können das AWS CodeCommit Repository verwenden, in dem Sie es erstellt haben[Tutorial: Erstellen Sie eine einfache Pipeline (CodeCommit Repository)](tutorials-simple-codecommit.md).
+ In diesem Beispiel wird ein Amazon DocumentDB 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 die Beispielvorlage herunter, bearbeiten Sie sie und laden Sie sie hoch AWS CloudFormation
<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 verwenden Sie die CodeCommit Konsole, um Ihre 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 Quellstufe 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 [Variablen-Referenz](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 in **Schritt 2: Pipeline-Einstellungen auswählen** im Feld **Pipeline-Name** den Wert ein**MyCFNDeployPipeline**.

1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in Eigenschaften und 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** aus, 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 **Standardstandort**, um den Standard-Artefaktspeicher, z. B. den Amazon S3 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, z. B. einen Amazon S3 S3-Artefakt-Bucket, in derselben Region wie Ihre Pipeline haben.
**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. Gehen **Sie in Schritt 3: Quelltext hinzufügen** wie folgt vor: 

   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 es 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 soll. 

   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 **Überspringen** wä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** wählen. 

   Wählen Sie **Weiter** aus.

1. Gehen Sie in **Schritt 6: Bereitstellungsphase hinzufügen** wie folgt vor:

   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 Pipeline-Phasen 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 CloudFormation Bereitstellungsaktion hinzu, um den Änderungssatz zu erstellen
<a name="tutorials-cloudformation-action-changeset"></a>

Erstellen Sie eine nächste Aktion in Ihrer Pipeline, mit der Sie CloudFormation den Änderungssatz vor der manuellen Genehmigungsaktion erstellen können.



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 unter **Action name (Aktionsname)** **Change\$1Set** ein. Wählen Sie **unter Aktionsanbieter** die Option aus **AWS CloudFormation **.

   1. Wählen Sie unter **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, mit der Sie den Änderungssatz nach der manuellen Genehmigungsaktion ausführen können CloudFormation .



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 unter **Action name (Aktionsname)** **Execute\$1Change\$1Set** ein. Wählen Sie **unter Aktionsanbieter** die Option aus **AWS CloudFormation**.

   1. Wählen Sie unter **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 Stack zu löschen
<a name="tutorials-cloudformation-action-delete"></a>

Erstellen Sie eine letzte Aktion in Ihrer Pipeline, mit der Sie CloudFormation den Stack-Namen aus der Variablen in der Ausgabedatei abrufen und den Stack löschen können.



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 im **Feld Aktionsname** die Option **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.