

Amazon CodeCatalyst ist nicht mehr offen für Neukunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Wie migriert man von CodeCatalyst](migration.md).

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.

# Einen CloudFormation Stack bereitstellen
<a name="deploy-action-cfn"></a>

In diesem Abschnitt wird beschrieben, wie Sie einen AWS CloudFormation Stack mithilfe eines CodeCatalyst Workflows bereitstellen. Um dies zu erreichen, müssen Sie Ihrem Workflow die Aktion ** CloudFormation Stack bereitstellen** hinzufügen. Die Aktion stellt einen CloudFormation Stapel von Ressourcen bereit, der auf einer von Ihnen bereitgestellten Vorlage AWS basiert. Die Vorlage kann eine sein:
+ CloudFormation Vorlage — Weitere Informationen finden Sie unter [Mit CloudFormation Vorlagen arbeiten](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).
+ AWS SAM Vorlage — Weitere Informationen finden Sie in der [AWS Serverless Application Model (AWS SAM) -Spezifikation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html).
**Anmerkung**  
Um eine AWS SAM Vorlage verwenden zu können, müssen Sie zuerst Ihre AWS SAM Anwendung mithilfe des `[sam package](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-package.html)` Vorgangs paketieren. Ein Tutorial, das Ihnen zeigt, wie Sie dieses Verpacken im Rahmen eines CodeCatalyst Amazon-Workflows automatisch durchführen, finden Sie unter[Tutorial: Eine serverlose Anwendung bereitstellen](deploy-tut-lambda.md).

Wenn der Stapel bereits vorhanden ist, führt die Aktion den CloudFormation `[CreateChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)` Vorgang und dann den `[ExecuteChangeSet](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ExecuteChangeSet.html)` Vorgang aus. Die Aktion wartet dann auf die Bereitstellung der Änderungen und markiert sich je nach Ergebnis entweder als erfolgreich oder als fehlgeschlagen.

Verwenden Sie die Aktion ** CloudFormation Stack bereitstellen**, wenn Sie bereits über eine CloudFormation AWS SAM Oder-Vorlage verfügen, die Ressourcen enthält, die Sie bereitstellen möchten, oder wenn Sie planen, im Rahmen einer [Workflow-Build-Aktion](build-add-action.md) mithilfe von Tools wie AWS SAM und [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)automatisch eine Vorlage zu generieren.

Es gibt keine Einschränkungen hinsichtlich der Vorlage, die Sie verwenden können — unabhängig davon, welche Vorlage Sie verwenden können, CloudFormation oder die AWS SAM Sie zusammen mit der Aktion „** CloudFormation Stack bereitstellen**“ verwenden können.

**Tipp**  
Ein Tutorial, das Ihnen zeigt, wie Sie eine serverlose Anwendung mithilfe der Aktion „** CloudFormation Stack bereitstellen“ bereitstellen**, finden Sie unter. [Tutorial: Eine serverlose Anwendung bereitstellen](deploy-tut-lambda.md)

**Topics**
+ [Runtime-Image, das von der Aktion „Stack bereitstellen“ CloudFormation verwendet wird](#deploy-action-cfn-runtime)
+ [Tutorial: Eine serverlose Anwendung bereitstellen](deploy-tut-lambda.md)
+ [Aktion „ CloudFormation Stapel bereitstellen“ hinzufügen](deploy-action-cfn-adding.md)
+ [Rollbacks konfigurieren](deploy-consumption-enable-alarms.md)
+ [CloudFormation 'Stack'-Variablen bereitstellen](deploy-action-cfn-variables.md)
+ [Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md)

## Runtime-Image, das von der Aktion „Stack bereitstellen“ CloudFormation verwendet wird
<a name="deploy-action-cfn-runtime"></a>

Die Aktion ** CloudFormation Stack bereitstellen** wird auf einem [Image vom November 2022](build-images.md#build.previous-image) ausgeführt. Weitere Informationen finden Sie unter [Aktive Bilder](build-images.md#build-curated-images).

# Tutorial: Eine serverlose Anwendung bereitstellen
<a name="deploy-tut-lambda"></a>

In diesem Tutorial erfahren Sie, wie Sie mithilfe eines Workflows eine serverlose Anwendung als CloudFormation Stack erstellen, testen und bereitstellen.

Die Anwendung in diesem Tutorial ist eine einfache Webanwendung, die eine „Hello World“ -Nachricht ausgibt. Es besteht aus einer AWS Lambda Funktion und einem Amazon API Gateway, und Sie erstellen es mit der [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html), einer Erweiterung von [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

**Topics**
+ [Voraussetzungen](#deploy-tut-lambda-cfn-prereqs)
+ [Schritt 1: Erstellen Sie ein Quell-Repository](#deploy-tut-lambda-cfn-source)
+ [Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles)
+ [Schritt 3: AWS Rollen hinzufügen CodeCatalyst](#deploy-tut-lambda-cfn-roles-add)
+ [Schritt 4: Erstellen Sie einen Amazon S3 S3-Bucket](#deploy-tut-lambda-cfn-s3)
+ [Schritt 5: Quelldateien hinzufügen](#deploy-tut-lambda-cfn-files)
+ [Schritt 6: Einen Workflow erstellen und ausführen](#deploy-tut-lambda-cfn-workflow)
+ [Schritt 7: Nehmen Sie eine Änderung vor](#deploy-tut-lambda-cfn-change)
+ [Bereinigen](#deploy-tut-lambda-cfn-clean-up)

## Voraussetzungen
<a name="deploy-tut-lambda-cfn-prereqs"></a>

Bevor Sie beginnen:
+ Sie benötigen einen CodeCatalyst **Bereich** mit einem verbundenen AWS Konto. Weitere Informationen finden Sie unter [Erstellen einer Umgebung](spaces-create.md).
+ In Ihrem Bereich benötigen Sie ein leeres Projekt mit dem Namen:

  ```
  codecatalyst-cfn-project
  ```

  Verwenden Sie die Option **Von vorne beginnen**, um dieses Projekt zu erstellen.

  Weitere Informationen finden Sie unter [Ein leeres Projekt in Amazon erstellen CodeCatalyst](projects-create.md#projects-create-empty).
+ In Ihrem Projekt benötigen Sie eine CodeCatalyst **Umgebung** mit dem Namen:

  ```
  codecatalyst-cfn-environment
  ```

  Konfigurieren Sie diese Umgebung wie folgt:
  + Wählen Sie einen beliebigen Typ, z. B. „Keine **Produktion**“.
  + Connect dein AWS Konto damit.
  + Wählen Sie für die **Standard-IAM-Rolle eine** beliebige Rolle aus. Sie werden später eine andere Rolle angeben.

  Weitere Informationen finden Sie unter [Einsatz in AWS-Konten und VPCs](deploy-environments.md).

## Schritt 1: Erstellen Sie ein Quell-Repository
<a name="deploy-tut-lambda-cfn-source"></a>

In diesem Schritt erstellen Sie ein Quell-Repository in CodeCatalyst. Dieses Repository wird verwendet, um die Quelldateien des Tutorials zu speichern, z. B. die Lambda-Funktionsdatei. 

Weitere Hinweise zu Quell-Repositorys finden Sie unter. [Erstellen eines Quell-Repositorys](source-repositories-create.md)

**Um ein Quell-Repository zu erstellen**

1. Wählen Sie im Navigationsbereich **Code** und dann **Quell-Repositories** aus. CodeCatalyst 

1. Wählen **Sie Repository hinzufügen** und anschließend **Repository erstellen** aus.

1. Geben Sie im Feld **Repository-Name** Folgendes ein:

   ```
   codecatalyst-cfn-source-repository
   ```

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

Sie haben jetzt ein Repository mit dem Namen erstellt`codecatalyst-cfn-source-repository`.

## Schritt 2: AWS Rollen erstellen
<a name="deploy-tut-lambda-cfn-roles"></a>

In diesem Schritt erstellen Sie die folgenden AWS IAM-Rollen:
+ **Rolle bereitstellen** — Erteilt der Aktion „** CloudFormation Stack CodeCatalyst bereitstellen**“ die Berechtigung, auf Ihr AWS Konto und Ihren CloudFormation Dienst zuzugreifen, in dem Sie Ihre serverlose Anwendung bereitstellen werden. Die Aktion ** CloudFormation Stack bereitstellen** ist Teil Ihres Workflows.
+ **Build-Rolle** — Erteilt der CodeCatalyst Build-Aktion die Berechtigung, auf Ihr AWS Konto zuzugreifen und in Amazon S3 zu schreiben, wo Ihr serverloses Anwendungspaket gespeichert wird. Die Build-Aktion ist Teil Ihres Workflows.
+ **Stack-Rolle** — Erteilt die CloudFormation Berechtigung zum Lesen und Ändern der Ressourcen, die in der AWS SAM Vorlage angegeben sind, die Sie später bereitstellen werden. Erteilt auch die Erlaubnis für CloudWatch.

Weitere Informationen zu IAM-Rollen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) im *AWS Identity and Access Management Benutzerhandbuch*.

**Anmerkung**  
Um Zeit zu sparen, können Sie anstelle der drei zuvor aufgeführten Rollen eine einzelne `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle, die so genannte Rolle, erstellen. Weitere Informationen finden Sie unter [Die **CodeCatalystWorkflowDevelopmentRole-*spaceName***Rolle für Ihr Konto und Ihren Bereich erstellen](ipa-iam-roles.md#ipa-iam-roles-service-create). Beachten Sie, dass die `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle über sehr umfangreiche Berechtigungen verfügt, die ein Sicherheitsrisiko darstellen können. Wir empfehlen, diese Rolle nur in Tutorials und Szenarien zu verwenden, in denen die Sicherheit weniger wichtig ist. In diesem Tutorial wird davon ausgegangen, dass Sie die drei zuvor aufgeführten Rollen erstellen.

**Anmerkung**  
Eine [Lambda-Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) ist ebenfalls erforderlich, aber Sie müssen sie jetzt nicht erstellen, da die `sam-template.yml` Datei sie für Sie erstellt, wenn Sie den Workflow in Schritt 5 ausführen.



**Um eine Bereitstellungsrolle zu erstellen**

1. Erstellen Sie wie folgt eine Richtlinie für die Rolle:

   1. Melden Sie sich an bei AWS.

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

   1. Wählen Sie im Navigationsbereich **Richtlinien**.

   1. Wählen Sie **Richtlinie erstellen** aus.

   1. Wählen Sie den Tab **JSON**.

   1. Löschen Sie den vorhandenen Code.

   1. Fügen Sie folgenden Code ein:
**Anmerkung**  
Wenn die Rolle zum ersten Mal zum Ausführen von Workflow-Aktionen verwendet wird, verwenden Sie den Platzhalter in der Ressourcenrichtlinien-Anweisung und grenzen Sie dann die Richtlinie mit dem Ressourcennamen ab, sobald sie verfügbar ist.  

      ```
      "Resource": "*"
      ```

   1. Wählen Sie **Next: Tags** (Weiter: Tags) aus.

   1. Klicken Sie auf **Weiter: Prüfen**.

   1. Geben Sie im Feld **Name** Folgendes ein:

      ```
      codecatalyst-deploy-policy
      ```

   1. Wählen Sie **Richtlinie erstellen** aus.

      Sie haben jetzt eine Berechtigungsrichtlinie erstellt.

1. Erstellen Sie die Bereitstellungsrolle wie folgt:

   1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

   1. Wählen Sie **Benutzerdefinierte Vertrauensrichtlinie**.

   1. Löschen Sie die bestehende benutzerdefinierte Vertrauensrichtlinie.

   1. Fügen Sie die folgende benutzerdefinierte Vertrauensrichtlinie hinzu:

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

   1. Suchen Sie **unter Berechtigungsrichtlinien** nach dem entsprechenden Kontrollkästchen `codecatalyst-deploy-policy` und aktivieren Sie es.

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

   1. Geben Sie **als Rollenname** Folgendes ein:

      ```
      codecatalyst-deploy-role
      ```

   1. Geben Sie **als Rollenbeschreibung** Folgendes ein:

      ```
      CodeCatalyst deploy role
      ```

   1. Wählen Sie **Rolle erstellen** aus.

   Sie haben jetzt eine Bereitstellungsrolle mit einer Vertrauensrichtlinie und einer Berechtigungsrichtlinie erstellt.

1. Rufen Sie den ARN für die Bereitstellungsrolle wie folgt ab:

   1. Wählen Sie im Navigationsbereich **Rollen**.

   1. Geben Sie im Suchfeld den Namen der Rolle ein, die Sie gerade erstellt haben (`codecatalyst-deploy-role`).

   1. Wählen Sie die Rolle aus der Liste aus.

      Die **Übersichtsseite** der Rolle wird angezeigt.

   1. Kopieren Sie oben den **ARN-Wert**.

   Sie haben jetzt die Bereitstellungsrolle mit den entsprechenden Berechtigungen erstellt und ihren ARN abgerufen.

**Um eine Build-Rolle zu erstellen**

1. Erstellen Sie wie folgt eine Richtlinie für die Rolle:

   1. Melden Sie sich an bei AWS.

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

   1. Wählen Sie im Navigationsbereich **Richtlinien**.

   1. Wählen Sie **Richtlinie erstellen** aus.

   1. Wählen Sie den Tab **JSON**.

   1. Löschen Sie den vorhandenen Code.

   1. Fügen Sie folgenden Code ein:
**Anmerkung**  
Wenn die Rolle zum ersten Mal zum Ausführen von Workflow-Aktionen verwendet wird, verwenden Sie den Platzhalter in der Ressourcenrichtlinien-Anweisung und grenzen Sie dann die Richtlinie mit dem Ressourcennamen ab, sobald sie verfügbar ist.  

      ```
      "Resource": "*"
      ```

   1. Wählen Sie **Next: Tags** (Weiter: Tags) aus.

   1. Klicken Sie auf **Weiter: Prüfen**.

   1. Geben Sie im Feld **Name** Folgendes ein:

      ```
      codecatalyst-build-policy
      ```

   1. Wählen Sie **Richtlinie erstellen** aus.

      Sie haben jetzt eine Berechtigungsrichtlinie erstellt.

1. Erstellen Sie die Build-Rolle wie folgt:

   1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

   1. Wählen Sie **Benutzerdefinierte Vertrauensrichtlinie**.

   1. Löschen Sie die bestehende benutzerdefinierte Vertrauensrichtlinie.

   1. Fügen Sie die folgende benutzerdefinierte Vertrauensrichtlinie hinzu:

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

   1. Suchen Sie **unter Berechtigungsrichtlinien** nach dem entsprechenden Kontrollkästchen `codecatalyst-build-policy` und aktivieren Sie es.

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

   1. Geben Sie **als Rollenname** Folgendes ein:

      ```
      codecatalyst-build-role
      ```

   1. Geben Sie **als Rollenbeschreibung** Folgendes ein:

      ```
      CodeCatalyst build role
      ```

   1. Wählen Sie **Rolle erstellen** aus.

   Sie haben jetzt eine Build-Rolle mit einer Vertrauensrichtlinie und einer Berechtigungsrichtlinie erstellt.

1. Rufen Sie den ARN für die Build-Rolle wie folgt ab:

   1. Wählen Sie im Navigationsbereich **Rollen**.

   1. Geben Sie im Suchfeld den Namen der Rolle ein, die Sie gerade erstellt haben (`codecatalyst-build-role`).

   1. Wählen Sie die Rolle aus der Liste aus.

      Die **Übersichtsseite** der Rolle wird angezeigt.

   1. Kopieren Sie oben den **ARN-Wert**.

   Sie haben jetzt die Build-Rolle mit den entsprechenden Berechtigungen erstellt und ihren ARN abgerufen.<a name="deploy-tut-lambda-cfn-roles-stack"></a>

**Um eine Stack-Rolle zu erstellen**

1. Melden Sie sich AWS mit dem Konto an, in dem Sie Ihren Stack bereitstellen möchten.

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

1. Erstellen Sie die Stack-Rolle wie folgt:

   1. Wählen Sie im Navigationsbereich **Rollen** aus.

   1. Wählen Sie **Create role** (Rolle erstellen) aus.

   1. Wählen Sie einen **AWS -Service** aus.

   1. Wählen **Sie im Abschnitt Anwendungsfall** eine Option **CloudFormation**aus der Drop-down-Liste aus.

   1. Wählen Sie das Optionsfeld **CloudFormation**.

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

   1. Suchen Sie mithilfe des Suchfeldes nach den folgenden Berechtigungsrichtlinien und aktivieren Sie dann die entsprechenden Kontrollkästchen.
**Anmerkung**  
Wenn Sie nach einer Richtlinie suchen und sie nicht angezeigt wird, wählen Sie **Filter löschen** aus und versuchen Sie es erneut.
      + **CloudWatchFullAccess**
      + **AWS CloudFormationFullAccess**
      + **IAMFullAccess**
      + **AWS Lambda\$1 FullAccess**
      + **APIGatewayAmazon-Administrator**
      + **Amazon S3 FullAccess**
      + **AmazonEC2ContainerRegistryFullAccess**

      Die erste Richtlinie ermöglicht den Zugriff auf Stack-Rollbacks, CloudWatch um Stack-Rollbacks zu aktivieren, wenn ein Alarm auftritt.

      Die verbleibenden Richtlinien ermöglichen den AWS SAM Zugriff auf die Dienste und Ressourcen im Stack, die in diesem Tutorial bereitgestellt werden. Weitere Informationen finden Sie unter [Berechtigungen](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-permissions.html) im *AWS Serverless Application Model Entwicklerhandbuch*.

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

   1. Geben Sie **als Rollenname** Folgendes ein:

      ```
      codecatalyst-stack-role
      ```

   1. Wählen Sie **Rolle erstellen** aus.

1. Rufen Sie den ARN der Stack-Rolle wie folgt ab:

   1. Wählen Sie im Navigationsbereich **Rollen**.

   1. Geben Sie im Suchfeld den Namen der Rolle ein, die Sie gerade erstellt haben (`codecatalyst-stack-role`).

   1. Wählen Sie die Rolle aus der Liste aus.

   1. Kopieren Sie im Abschnitt **Zusammenfassung** den **ARN-Wert**. Sie benötigen sie später.

   Sie haben jetzt die Stack-Rolle mit den entsprechenden Berechtigungen erstellt und ihren ARN abgerufen.

## Schritt 3: AWS Rollen hinzufügen CodeCatalyst
<a name="deploy-tut-lambda-cfn-roles-add"></a>

In diesem Schritt fügen Sie der CodeCatalyst Kontoverbindung in Ihrem Bereich die Build-Rolle (`codecatalyst-build-role``codecatalyst-deploy-role`) und die Bereitstellungsrolle () hinzu.

**Anmerkung**  
Sie müssen die Stack-Rolle (`codecatalyst-stack-role`) nicht zur Verbindung hinzufügen. Das liegt daran, dass die Stack-Rolle von *CloudFormation*(nicht CodeCatalyst) verwendet wird, *nachdem* bereits eine Verbindung zwischen CodeCatalyst und AWS unter Verwendung der Deploy-Rolle hergestellt wurde. Da die Stack-Rolle nicht für den CodeCatalyst Zugriff verwendet wird AWS, muss sie keiner Kontoverbindung zugeordnet werden.

**Um Ihrer Kontoverbindung Rollen hinzuzufügen, zu erstellen und bereitzustellen**

1. Navigieren CodeCatalyst Sie darin zu Ihrem Bereich.

1. Wählen Sie **AWS accounts (-Konten)**. Eine Liste der Kontoverbindungen wird angezeigt.

1. Wählen Sie die Kontoverbindung aus, die dem AWS Konto entspricht, in dem Sie Ihre Build- und Deploy-Rollen erstellt haben.

1. Wählen Sie in der ** AWS Managementkonsole die Option Rollen verwalten aus**.

   Die Seite „**IAM-Rolle zu Amazon CodeCatalyst Space hinzufügen**“ wird angezeigt. Möglicherweise müssen Sie sich anmelden, um auf die Seite zuzugreifen.

1. Wählen Sie **Eine bestehende Rolle hinzufügen, die Sie in IAM erstellt haben**.

   Eine Dropdownliste wird angezeigt. In der Liste werden alle IAM-Rollen mit einer Vertrauensrichtlinie angezeigt, die die Dienstprinzipale `codecatalyst-runner.amazonaws.com` und die `codecatalyst.amazonaws.com` Dienstprinzipale umfasst.

1. Wählen Sie in der Dropdownliste die Option und `codecatalyst-build-role` anschließend Rolle **hinzufügen** aus.

1. Wählen Sie **IAM-Rolle hinzufügen** aus, wählen Sie **Vorhandene Rolle hinzufügen, die Sie in IAM erstellt haben**, und wählen Sie in der Drop-down-Liste die Option aus. `codecatalyst-deploy-role` Wählen Sie **Rolle hinzufügen** aus.

   Sie haben jetzt die Build- und Deploy-Rollen zu Ihrem Bereich hinzugefügt.

1. Kopieren Sie den Wert des ** CodeCatalyst Amazon-Anzeigenamens**. Sie benötigen diesen Wert später, wenn Sie Ihren Workflow erstellen.

## Schritt 4: Erstellen Sie einen Amazon S3 S3-Bucket
<a name="deploy-tut-lambda-cfn-s3"></a>

In diesem Schritt erstellen Sie einen Amazon S3 S3-Bucket, in dem Sie die ZIP-Datei des Bereitstellungspakets Ihrer serverlosen Anwendung speichern.

**So erstellen Sie einen Amazon-S3-Bucket**

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

1. Wählen Sie im Hauptbereich **Create Bucket** aus.

1. Geben Sie als **Bucket-Namen** Folgendes ein:

   ```
   codecatalyst-cfn-s3-bucket
   ```

1. Wählen Sie unter **AWS -Region** eine Region aus. In diesem Tutorial wird davon ausgegangen, dass Sie **US West (Oregon) us-west-2** ausgewählt haben. Informationen zu den von Amazon S3 unterstützten Regionen finden Sie unter [Amazon Simple Storage Service-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/s3.html) in der *Allgemeine AWS-Referenz*.

1. Wählen Sie unten auf der Seite die Option **Bucket erstellen** aus.

Sie haben jetzt einen Bucket mit dem Namen **codecatalyst-cfn-s3-bucket** in der Region USA West (Oregon) us-west-2 erstellt.

## Schritt 5: Quelldateien hinzufügen
<a name="deploy-tut-lambda-cfn-files"></a>

In diesem Schritt fügen Sie Ihrem CodeCatalyst Quell-Repository mehrere Anwendungsquelldateien hinzu. Der `hello-world` Ordner enthält die Anwendungsdateien, die Sie bereitstellen werden. Der `tests` Ordner enthält Komponententests. Die Ordnerstruktur ist wie folgt:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

### .npmignore-Datei
<a name="deploy-tut-lambda-cfn-files-npmignore"></a>

Die `.npmignore` Datei gibt an, welche Dateien und Ordner npm aus dem Anwendungspaket ausschließen soll. In diesem Tutorial schließt npm den `tests` Ordner aus, da er nicht Teil der Anwendung ist.

**Um die Datei „.npmignore“ hinzuzufügen**

1. [Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Wähle dein Projekt, `codecatalyst-cfn-project`

1. Wählen Sie im Navigationsbereich **Code** und dann **Quell-Repositories** aus.

1. Wählen Sie aus der Liste der Quell-Repositorys Ihr Repository aus. `codecatalyst-cfn-source-repository` 

1. Wählen Sie unter **Dateien** die Option **Datei erstellen** aus.

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   .npmignore
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   tests/*
   ```

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt eine Datei mit dem Namen `.npmignore` im Stammverzeichnis Ihres Repositorys erstellt.

### package.json-Datei
<a name="deploy-tut-lambda-cfn-files-package-json"></a>

Die `package.json` Datei enthält wichtige Metadaten zu Ihrem Node-Projekt wie Projektname, Versionsnummer, Beschreibung, Abhängigkeiten und andere Details, die beschreiben, wie Sie mit Ihrer Anwendung interagieren und sie ausführen.

Die `package.json` in diesem Tutorial enthaltene Liste enthält eine Liste von Abhängigkeiten und ein `test` Skript. Das Testskript macht Folgendes:
+ Unter Verwendung von [Mocha](https://mochajs.org/) führt das Testskript die in angegebenen Komponententests aus `hello-world/tests/unit/` und schreibt die Ergebnisse mithilfe des [Xunit-Reporters]() in eine `junit.xml` Datei.
+ [Unter Verwendung von [Istanbul (NYC)](https://istanbul.js.org/) generiert das Testskript mithilfe des Clover Reporters einen Bericht über die Codeabdeckung (`clover.xml`).](https://openclover.org/doc/manual/4.2.0/general--about-openclover.html) Weitere Informationen finden Sie in der [Istanbul-Dokumentation unter Verwenden alternativer Reporter](https://istanbul.js.org/docs/advanced/alternative-reporters/#clover).

**Um die Datei package.json hinzuzufügen**

1. **Wählen Sie in Ihrem Repository unter **Dateien** die Option Datei erstellen aus.**

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   package.json
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   {
     "name": "hello_world",
     "version": "1.0.0",
     "description": "hello world sample for NodeJS",
     "main": "app.js",
     "repository": "https://github.com/awslabs/aws-sam-cli/tree/develop/samcli/local/init/templates/cookiecutter-aws-sam-hello-nodejs",
     "author": "SAM CLI",
     "license": "MIT",
     "dependencies": {
       "axios": "^0.21.1",
       "nyc": "^15.1.0"
     },
     "scripts": {
       "test": "nyc --reporter=clover mocha hello-world/tests/unit/ --reporter xunit --reporter-option output=junit.xml"
     },
     "devDependencies": {
       "aws-sdk": "^2.815.0",
       "chai": "^4.2.0",
       "mocha": "^8.2.1"
     }
   }
   ```

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt eine Datei mit dem Namen `package.json` zum Stammverzeichnis des Repositorys hinzugefügt.

### Datei sam-template.yml
<a name="deploy-tut-lambda-cfn-files-sam-template-yml"></a>

Die `sam-template.yml` Datei enthält die Anweisungen für die Bereitstellung der Lambda-Funktion und des API Gateway und deren gemeinsame Konfiguration. Sie folgt der [AWS Serverless Application Model Vorlagenspezifikation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html), die die CloudFormation Vorlagenspezifikation erweitert.

In diesem Tutorial verwenden Sie eine AWS SAM Vorlage anstelle einer regulären CloudFormation Vorlage, da sie einen hilfreichen [AWS: :Serverless: :Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) Ressourcentyp AWS SAM bietet. Dieser Typ führt viele behind-the-scenes Konfigurationen durch, die Sie normalerweise ausschreiben müssen, um die grundlegende Syntax zu verwenden. CloudFormation Beispielsweise `AWS::Serverless::Function` erstellt der eine Lambda-Funktion, eine Lambda-Ausführungsrolle und Ereignisquellenzuordnungen, mit denen die Funktion gestartet wird. Sie müssen all das programmieren, wenn Sie es mit Basic schreiben möchten. CloudFormation

In diesem Tutorial wird zwar eine vorgefertigte Vorlage verwendet, Sie können jedoch eine Vorlage als Teil Ihres Workflows mithilfe einer Build-Aktion generieren. Weitere Informationen finden Sie unter [Einen CloudFormation Stack bereitstellen](deploy-action-cfn.md).

**Um die Datei sam-template.yml hinzuzufügen**

1. **Wählen Sie in Ihrem Repository unter **Dateien** die Option Datei erstellen aus.**

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   sam-template.yml
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   AWSTemplateFormatVersion: '2010-09-09'
   Transform: AWS::Serverless-2016-10-31
   Description: >
     serverless-api
   
     Sample SAM Template for serverless-api
     
   # More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
   Globals:
     Function:
       Timeout: 3
   
   Resources:
     HelloWorldFunction:
       Type: AWS::Serverless::Function # For details on this resource type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
       Properties:
         CodeUri: hello-world/
         Handler: app.lambdaHandler
         Runtime: nodejs12.x
         Events:
           HelloWorld:
             Type: Api # For details on this event source type, see https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#api
             Properties:
               Path: /hello
               Method: get
   
   Outputs:
     # ServerlessRestApi is an implicit API created out of the events key under Serverless::Function
     # Find out about other implicit resources you can reference within AWS SAM at
     # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
     HelloWorldApi:
       Description: "API Gateway endpoint URL for the Hello World function"
       Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
     HelloWorldFunction:
       Description: "Hello World Lambda function ARN"
       Value: !GetAtt HelloWorldFunction.Arn
     HelloWorldFunctionIamRole:
       Description: "Implicit Lambda execution role created for the Hello World function"
       Value: !GetAtt HelloWorldFunctionRole.Arn
   ```

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt eine Datei mit `sam-template.yml` dem Namen im Stammordner Ihres Repositorys hinzugefügt.

### Datei setup-sam.sh
<a name="deploy-tut-lambda-cfn-files-setup-sam"></a>

Die `setup-sam.sh` Datei enthält Anweisungen zum Herunterladen und Installieren des AWS SAM CLI-Dienstprogramms. Der Workflow verwendet dieses Hilfsprogramm, um die `hello-world` Quelle zu verpacken.

**Um die Datei setup-sam.sh hinzuzufügen**

1. Wählen Sie in Ihrem Repository unter **Dateien** die Option **Datei erstellen** aus.

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   setup-sam.sh
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   #!/usr/bin/env bash
   echo "Setting up sam"
   
   yum install unzip -y
   
   curl -LO https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
   unzip -qq aws-sam-cli-linux-x86_64.zip -d sam-installation-directory
   
   ./sam-installation-directory/install; export AWS_DEFAULT_REGION=us-west-2
   ```

   Ersetzen Sie den Code im vorherigen Code *us-west-2* durch Ihre AWS Region.

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt eine Datei mit dem Namen `setup-sam.sh` zum Stammverzeichnis des Repositorys hinzugefügt.

### Datei app.js
<a name="deploy-tut-lambda-cfn-files-app-js"></a>

Das `app.js` enthält den Lambda-Funktionscode. In diesem Tutorial gibt der Code den Text `hello world` zurück.

**Um die Datei app.js hinzuzufügen**

1. Wählen Sie in Ihrem Repository unter **Dateien** die Option **Datei erstellen** aus.

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   hello-world/app.js
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    * 
    */
   exports.lambdaHandler = async (event, context) => {
       try {
           // const ret = await axios(url);
           response = {
               'statusCode': 200,
               'body': JSON.stringify({
                   message: 'hello world',
                   // location: ret.data.trim()
               })
           }
       } catch (err) {
           console.log(err);
           return err;
       }
   
       return response
   };
   ```

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt einen Ordner mit dem Namen `hello-world` und eine Datei mit dem Namen erstellt`app.js`.

### Datei test-handler.js
<a name="deploy-tut-lambda-cfn-files-test-handler-js"></a>

Die `test-handler.js` Datei enthält Komponententests für die Lambda-Funktion.

**Um die Datei test-handler.js hinzuzufügen**

1. Wählen Sie in Ihrem Repository unter **Dateien** die Option **Datei erstellen** aus.

1. Geben Sie als **Dateiname** Folgendes ein:

   ```
   hello-world/tests/unit/test-handler.js
   ```

1. Geben Sie in das Textfeld den folgenden Code ein:

   ```
   'use strict';
   
   const app = require('../../app.js');
   const chai = require('chai');
   const expect = chai.expect;
   var event, context;
   
   describe('Tests index', function () {
       it('verifies successful response', async () => {
           const result = await app.lambdaHandler(event, context)
   
           expect(result).to.be.an('object');
           expect(result.statusCode).to.equal(200);
           expect(result.body).to.be.an('string');
   
           let response = JSON.parse(result.body);
   
           expect(response).to.be.an('object');
           expect(response.message).to.be.equal("hello world");
           // expect(response.location).to.be.an("string");
       });
   });
   ```

1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

   Sie haben jetzt eine Datei mit `test-handler.js` dem Namen unter dem `hello-world/tests/unit` Ordner hinzugefügt.

Sie haben jetzt alle Ihre Quelldateien hinzugefügt.

Nehmen Sie sich einen Moment Zeit, um Ihre Arbeit zu überprüfen und sicherzustellen, dass Sie alle Dateien in den richtigen Ordnern abgelegt haben. Die Ordnerstruktur ist wie folgt:

```
.
|— hello-world
|  |— tests
|     |— unit
|        |— test-handler.js
|  |— app.js
|— .npmignore
|— README.md
|— package.json
|— sam-template.yml
|— setup-sam.sh
```

## Schritt 6: Einen Workflow erstellen und ausführen
<a name="deploy-tut-lambda-cfn-workflow"></a>

In diesem Schritt erstellen Sie einen Workflow, der Ihren Lambda-Quellcode verpackt und bereitstellt. Der Workflow besteht aus den folgenden Bausteinen, die sequentiell ausgeführt werden:
+ Ein Trigger — Dieser Trigger startet die Workflow-Ausführung automatisch, wenn Sie eine Änderung an Ihr Quell-Repository übertragen. Weitere Informationen zu Auslösern finden Sie unter [Automatisches Starten einer Workflow-Ausführung mithilfe von Triggern](workflows-add-trigger.md).
+ Eine Testaktion (`Test`) — Beim Trigger installiert diese Aktion den [Node-Paketmanager (npm)](https://www.npmjs.com/) und führt dann den `npm run test` Befehl aus. Dieser Befehl weist npm an, das in der `test` Datei definierte Skript auszuführen. `package.json` Das `test` Skript wiederum führt die Komponententests aus und generiert zwei Berichte: einen Testbericht (`junit.xml`) und einen Bericht über die Codeabdeckung (`clover.xml`). Weitere Informationen finden Sie unter [package.json-Datei](#deploy-tut-lambda-cfn-files-package-json).

  Als Nächstes wandelt die Testaktion die XML-Berichte in CodeCatalyst Berichte um und zeigt sie in der CodeCatalyst Konsole auf der Registerkarte **Berichte** der Testaktion an.

  Weitere Informationen zur Testaktion finden Sie unter[Testen mit WorkflowsTesten mit Workflows](test-workflow-actions.md).
+ Eine Build-Aktion (`BuildBackend`) — Nach Abschluss der Testaktion lädt die Build-Aktion die AWS SAM CLI herunter und installiert sie, packt die `hello-world` Quelle und kopiert das Paket in Ihren Amazon S3 S3-Bucket, wo es vom Lambda-Service erwartet wird. Die Aktion gibt auch eine neue AWS SAM Vorlagendatei namens aus `sam-template-packaged.yml` und platziert sie in einem Ausgabeartefakt namens. `buildArtifact`

  Weitere Informationen zur Build-Aktion finden Sie unter[Bauen mit Workflows](build-workflow-actions.md).
+ Eine Bereitstellungsaktion (`DeployCloudFormationStack`) — Nach Abschluss der Build-Aktion sucht die Bereitstellungsaktion nach dem von der Build-Aktion (`buildArtifact`) generierten Ausgabeartefakt, findet die darin enthaltene AWS SAM Vorlage und führt dann die Vorlage aus. Die AWS SAM Vorlage erstellt einen Stack, der die serverlose Anwendung bereitstellt.

**So erstellen Sie ein Workflow**

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie Workflow **erstellen** aus.

1. Wählen Sie für **Quell-Repository**`codecatalyst-cfn-source-repository`.

1. Wählen Sie für **Branch**`main`.

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

1. Löschen Sie den YAML-Beispielcode.

1. Fügen Sie den folgenden YAML-Code hinzu:
**Anmerkung**  
Im folgenden YAML-Code können Sie die `Connections:` Abschnitte weglassen, wenn Sie möchten. Wenn Sie diese Abschnitte weglassen, müssen Sie sicherstellen, dass die im Feld **Standard-IAM-Rolle angegebene Rolle** in Ihrer Umgebung die Berechtigungen und Vertrauensrichtlinien beider Rollen enthält, die unter beschrieben sind. [Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles) Weitere Informationen zum Einrichten einer Umgebung mit einer Standard-IAM-Rolle finden Sie unter. [Erstellen einer Umgebung](deploy-environments-creating-environment.md)

   ```
   Name: codecatalyst-cfn-workflow
   SchemaVersion: 1.0
   
   Triggers:
     - Type: PUSH
       Branches:
         - main   
   Actions:
     Test:
       Identifier: aws/managed-test@v1
       Inputs:
         Sources:
           - WorkflowSource
       Outputs:
         Reports:
           CoverageReport:
             Format: CLOVERXML
             IncludePaths:
               - "coverage/*"
           TestReport:
             Format: JUNITXML
             IncludePaths:
               - junit.xml
       Configuration:
         Steps:
           - Run: npm install
           - Run: npm run test  
     BuildBackend:
       Identifier: aws/build@v1
       DependsOn:
         - Test
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-build-role
       Inputs:
         Sources:
           - WorkflowSource
       Configuration: 
         Steps:
           - Run: . ./setup-sam.sh
           - Run: sam package --template-file sam-template.yml --s3-bucket codecatalyst-cfn-s3-bucket --output-template-file sam-template-packaged.yml --region us-west-2
       Outputs:
         Artifacts:
           - Name: buildArtifact
             Files:
               - "**/*"
     DeployCloudFormationStack:
       Identifier: aws/cfn-deploy@v1
       DependsOn: 
         - BuildBackend
       Environment:
         Name: codecatalyst-cfn-environment
         Connections:
           - Name: codecatalyst-account-connection
             Role: codecatalyst-deploy-role
       Inputs:
         Artifacts:
           - buildArtifact
         Sources: []
       Configuration:
         name: codecatalyst-cfn-stack
         region: us-west-2
         role-arn: arn:aws:iam::111122223333:role/StackRole
         template: ./sam-template-packaged.yml
         capabilities: CAPABILITY_IAM,CAPABILITY_AUTO_EXPAND
   ```

   Ersetzen Sie im vorherigen Code:
   + Beide Instanzen von *codecatalyst-cfn-environment* mit dem Namen Ihrer Umgebung.
   + Beide Instanzen von *codecatalyst-account-connection* mit dem Anzeigenamen Ihrer Kontoverbindung. Der Anzeigename kann eine Zahl sein. Weitere Informationen finden Sie unter [Schritt 3: AWS Rollen hinzufügen CodeCatalyst](#deploy-tut-lambda-cfn-roles-add).
   + *codecatalyst-build-role*mit dem Namen der Build-Rolle, in der Sie erstellt haben[Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles).
   + *codecatalyst-cfn-s3-bucket*mit dem Namen des Amazon S3 S3-Buckets, in dem Sie ihn erstellt haben[Schritt 4: Erstellen Sie einen Amazon S3 S3-Bucket](#deploy-tut-lambda-cfn-s3).
   + Beide Instanzen *us-west-2* mit der Region, in der sich Ihr Amazon S3 S3-Bucket befindet (erste Instance), und in der Ihr Stack bereitgestellt wird (zweite Instance). Diese Regionen können unterschiedlich sein. In diesem Tutorial wird davon ausgegangen, dass beide Regionen auf eingestellt sind`us-west-2`. Einzelheiten zu den von Amazon S3 und CloudFormation unterstützten Regionen finden Sie unter [Service-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) in der *Allgemeine AWS-Referenz*.
   + *codecatalyst-deploy-role*mit dem Namen der Bereitstellungsrolle, in [Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles) der Sie erstellt haben.
   + *codecatalyst-cfn-environment*mit dem Namen der Umgebung, in der Sie erstellt haben[Voraussetzungen](#deploy-tut-lambda-cfn-prereqs).
   + *arn:aws:iam::111122223333:role/StackRole*mit dem Amazon-Ressourcennamen (ARN) der Stack-Rolle, in der Sie erstellt haben[Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles).
**Anmerkung**  
Wenn Sie sich entschieden haben, keine Build-, Deployment- und Stack-Rollen zu erstellen *codecatalyst-build-role**codecatalyst-deploy-role*, ersetzen Sie, und *arn:aws:iam::111122223333:role/StackRole* durch den Namen oder ARN der `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle. Weitere Informationen über diese Rolle finden Sie unter [Schritt 2: AWS Rollen erstellen](#deploy-tut-lambda-cfn-roles).

   Informationen zu den Eigenschaften des zuvor gezeigten Codes finden Sie unter[Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md).

1. (Optional) Wählen Sie „**Validieren**“, um sicherzustellen, dass der YAML-Code gültig ist, bevor Sie ihn festschreiben.

1. Wählen Sie **Commit** (Übergeben).

1. Geben Sie im **Dialogfeld „Workflow bestätigen**“ Folgendes ein:

   1. Behalten Sie als **Workflow-Dateiname** die Standardeinstellung bei`codecatalyst-cfn-workflow`.

   1. Geben Sie für **Commit-Nachricht** Folgendes ein:

      ```
      add initial workflow file
      ```

   1. Wählen Sie für **Repository **codecatalyst-cfn-source-repository****.

   1. Wählen Sie als **Branch-Name** die Option **main** aus.

   1. Wählen Sie **Commit** (Übergeben).

   Sie haben jetzt einen Workflow erstellt. Eine Workflow-Ausführung wird aufgrund des oben im Workflow definierten Triggers automatisch gestartet. Insbesondere, als Sie die `codecatalyst-cfn-workflow.yaml` Datei in Ihr Quell-Repository übernommen (und per Push übertragen) haben, hat der Trigger die Workflow-Ausführung gestartet.

**Um den laufenden Workflow-Lauf zu sehen**

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Workflow aus, den Sie gerade erstellt haben:. `codecatalyst-cfn-workflow`

1. Wählen Sie die Registerkarte „**Läufe**“.

1. Wählen Sie in der Spalte **Run-ID** die Run-ID aus.

1. Wählen Sie **Test**, um den Fortschritt der Tests zu sehen.

1. Wählen Sie **BuildBackend**, um den Baufortschritt zu sehen.

1. Wählen Sie **DeployCloudFormationStack**diese Option, um den Fortschritt der Bereitstellung zu sehen.

   Weitere Informationen zum Anzeigen von Ausführungsdetails finden Sie unter[Status und Details der Workflow-Ausführung anzeigen](workflows-view-run.md).

1. Wenn die **DeployCloudFormationStack**Aktion abgeschlossen ist, gehen Sie wie folgt vor:
   + Wenn die Workflow-Ausführung erfolgreich war, fahren Sie mit dem nächsten Verfahren fort.
   + Wenn die Workflow-Ausführung beim **Test** oder bei der **BuildBackend**Aktion fehlgeschlagen ist, wählen Sie **Protokolle** aus, um das Problem zu beheben.
   + Wenn die Workflow-Ausführung bei der **DeployCloudFormationStack**Aktion fehlgeschlagen ist, wählen Sie die Aktion „Bereitstellen“ und anschließend die Registerkarte „**Zusammenfassung**“. Scrollen Sie zum Abschnitt „**CloudFormation Ereignisse**“, um die detaillierte Fehlermeldung anzuzeigen. Wenn ein Rollback aufgetreten ist, löschen Sie den `codecatalyst-cfn-stack` Stack über die CloudFormation Konsole, AWS bevor Sie den Workflow erneut ausführen.

**Um die Bereitstellung zu überprüfen**

1. Wählen Sie nach einer erfolgreichen Bereitstellung in der horizontalen Menüleiste oben die Option **Variablen (7)** aus. (Wählen Sie im Bereich auf der rechten Seite nicht **Variablen** aus.)

1. Fügen Sie **HelloWorldApi**als Nächstes die `https://` URL in einen Browser ein.

   Eine **Hello-World-JSON-Meldung** von der Lambda-Funktion wird angezeigt, die darauf hinweist, dass der Workflow die Lambda-Funktion und das API Gateway erfolgreich bereitgestellt und konfiguriert hat.
**Tipp**  
Sie können diese URL mit einigen kleinen Konfigurationen im Workflow-Diagramm CodeCatalyst anzeigen lassen. Weitere Informationen finden Sie unter [Anzeige der App-URL im Workflow-Diagramm](deploy-app-url.md).

**Um die Ergebnisse der Komponententests und die Codeabdeckung zu überprüfen**

1. Wählen Sie im Workflow-Diagramm **Test** und dann **Berichte** aus.

1. Wählen **TestReport**Sie, ob Sie sich die Ergebnisse der Komponententests oder die Codeabdeckung der getesteten Dateien anzeigen lassen möchten **CoverageReport**, in diesem Fall `app.js` und`test-handler.js`.

**Um die bereitgestellten Ressourcen zu überprüfen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Beachten Sie die **codecatalyst-cfn-stack**API, die die AWS SAM Vorlage erstellt hat. Der API-Name stammt aus dem `Configuration/name` Wert in der Workflow-Definitionsdatei (`codecatalyst-cfn-workflow.yaml`).

1. Öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie im Navigationsbereich **Funktionen** aus.

1. Wählen Sie Ihre Lambda-Funktion,`codecatalyst-cfn-stack-HelloWorldFunction-string`.

1. Sie können sehen, wie das API Gateway ein Auslöser für die Funktion ist. Diese Integration wurde automatisch nach dem AWS SAM `AWS::Serverless::Function` Ressourcentyp konfiguriert.

## Schritt 7: Nehmen Sie eine Änderung vor
<a name="deploy-tut-lambda-cfn-change"></a>

In diesem Schritt nehmen Sie eine Änderung an Ihrem Lambda-Quellcode vor und übernehmen diese. Mit diesem Commit wird ein neuer Workflow-Lauf gestartet. Bei diesem Lauf wird die neue Lambda-Funktion in einem blaugrünen Schema bereitgestellt, das die in der Lambda-Konsole angegebene Standardkonfiguration zur Verkehrsverlagerung verwendet.

**Um eine Änderung an Ihrer Lambda-Quelle vorzunehmen**

1. Navigieren Sie in CodeCatalyst zu Ihrem Projekt.

1. Wählen Sie im Navigationsbereich **Code** und dann **Quell-Repositories** aus.

1. Wählen Sie Ihr Quell-Repository `codecatalyst-cfn-source-repository` aus.

1. Ändern Sie die Anwendungsdatei:

   1. Wählen Sie den Ordner `hello-world` aus.

   1. Wählen Sie die `app.js` Datei aus.

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

   1. Wechseln Sie in Zeile 23 `hello world` zu**Tutorial complete\$1**.

   1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

      Durch den Commit wird ein Workflow-Lauf gestartet. Dieser Lauf schlägt fehl, weil Sie die Komponententests nicht aktualisiert haben, um die Namensänderung widerzuspiegeln.

1. Aktualisieren Sie die Komponententests:

   1. Wählen Sie `hello-world\tests\unit\test-handler.js`.

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

   1. Wechseln Sie in Zeile 19 `hello world` zu**Tutorial complete\$1**.

   1. Wählen Sie **Commit** und anschließend erneut **Commit** aus.

      Durch den Commit wird ein weiterer Workflow-Lauf gestartet. Dieser Lauf wird erfolgreich sein.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. **Wählen Sie `codecatalyst-cfn-workflow` und wählen Sie dann Runs aus.**

1. Wählen Sie die Lauf-ID des letzten Laufs aus. Es sollte noch in Bearbeitung sein.

1. Wählen Sie **Test** und **BuildBackend**, **DeployCloudFormationStack**um den Fortschritt der Workflow-Ausführung zu sehen.

1. Wenn der Workflow abgeschlossen ist, wählen Sie oben **Variablen (7)** aus.

1. Fügen Sie **HelloWorldApi**als Nächstes die `https://` URL in einen Browser ein.

   Im Browser wird eine `Tutorial complete!` Meldung angezeigt, die darauf hinweist, dass Ihre neue Anwendung erfolgreich bereitgestellt wurde.

## Bereinigen
<a name="deploy-tut-lambda-cfn-clean-up"></a>

Bereinigen Sie die in diesem Tutorial verwendeten Dateien und Dienste, um zu vermeiden, dass dafür Gebühren anfallen.

**Um in der CodeCatalyst Konsole aufzuräumen**

1. Öffnen Sie die CodeCatalyst Konsole unter [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Löschen`codecatalyst-cfn-workflow`.

1. Löschen`codecatalyst-cfn-environment`.

1. Löschen`codecatalyst-cfn-source-repository`.

1. Löschen`codecatalyst-cfn-project`.

**Zum Aufräumen in der AWS-Managementkonsole**

1.  CloudFormationAufräumen wie folgt:

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

   1. Löschen Sie das `codecatalyst-cfn-stack`.

      Durch das Löschen des Stacks werden alle Tutorial-Ressourcen aus den API Gateway- und Lambda-Diensten entfernt.

1. Bereinigen Sie in Amazon S3 wie folgt:

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

   1. Wählen Sie das Symbol `codecatalyst-cfn-s3-bucket`.

   1. Löschen Sie den Inhalt des Buckets.

   1. Löschen Sie den Bucket.

1. Bereinigen Sie in IAM wie folgt:

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

   1. Löschen Sie das `codecatalyst-deploy-policy`.

   1. Löschen Sie das `codecatalyst-build-policy`.

   1. Löschen Sie das `codecatalyst-stack-policy`.

   1. Löschen Sie das `codecatalyst-deploy-role`.

   1. Löschen Sie das `codecatalyst-build-role`.

   1. Löschen Sie das `codecatalyst-stack-role`.

In diesem Tutorial haben Sie gelernt, wie Sie eine serverlose Anwendung mithilfe eines CodeCatalyst Workflows und einer CloudFormation Stack-Aktion bereitstellen als ** CloudFormation Stack bereitstellen**.

# Aktion „ CloudFormation Stapel bereitstellen“ hinzufügen
<a name="deploy-action-cfn-adding"></a>

Verwenden Sie die folgenden Anweisungen, um die Aktion ** CloudFormation Stack bereitstellen** zu Ihrem Workflow hinzuzufügen. 

------
#### [ Visual ]

**Um die Aktion „ CloudFormation Stapel bereitstellen“ mit dem visuellen Editor hinzuzufügen**

1. [Öffnen Sie die CodeCatalyst Konsole unter https://codecatalyst.aws/.](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **Visual**.

1. Wählen Sie oben links **\$1 Aktionen**, um den Aktionskatalog zu öffnen.

1. Wählen Sie in der Drop-down-Liste **Amazon** aus CodeCatalyst.

1. Suchen Sie nach der Aktion ** CloudFormation Stack bereitstellen** und führen Sie einen der folgenden Schritte aus:
   + Wählen Sie das Pluszeichen (**\$1**), um die Aktion zum Workflow-Diagramm hinzuzufügen und den zugehörigen Konfigurationsbereich zu öffnen.

     Oder
   + Wählen Sie ** CloudFormation Stack bereitstellen** aus. Das Dialogfeld mit den Aktionsdetails wird angezeigt. In diesem Dialogfeld gehen Sie wie folgt vor:
     + (Optional) Wählen Sie „**Herunterladen**“, um [den Quellcode der Aktion anzuzeigen](workflows-view-source.md#workflows-view-source.title).
     + Wählen Sie **Zum Workflow** hinzufügen, um die Aktion zum Workflow-Diagramm hinzuzufügen und den zugehörigen Konfigurationsbereich zu öffnen.

1. Füllen Sie auf den Registerkarten **Eingaben** und **Konfiguration** die Felder nach Ihren Bedürfnissen aus. Eine Beschreibung der einzelnen Felder finden Sie unter[Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md). Diese Referenz enthält detaillierte Informationen zu jedem Feld (und dem entsprechenden YAML-Eigenschaftswert), wie es sowohl im YAML- als auch im visuellen Editor angezeigt wird.

1. (Optional) Wählen Sie „**Validieren**“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

1. Wählen Sie **Commit**, geben Sie eine Commit-Nachricht ein und wählen Sie erneut **Commit** aus.

------
#### [ YAML ]

**Um die Aktion „ CloudFormation Stack bereitstellen“ mit dem YAML-Editor hinzuzufügen**

1. [Öffnen Sie die Konsole unter https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **YAML.**

1. Wählen Sie links oben **\$1 Aktionen aus, um den Aktionskatalog** zu öffnen.

1. Wählen Sie in der Drop-down-Liste **Amazon** aus CodeCatalyst.

1. Suchen Sie nach der Aktion ** CloudFormation Stack bereitstellen** und führen Sie einen der folgenden Schritte aus:
   + Wählen Sie das Pluszeichen (**\$1**), um die Aktion zum Workflow-Diagramm hinzuzufügen und den zugehörigen Konfigurationsbereich zu öffnen.

     Oder
   + Wählen Sie ** CloudFormation Stack bereitstellen** aus. Das Dialogfeld mit den Aktionsdetails wird angezeigt. In diesem Dialogfeld gehen Sie wie folgt vor:
     + (Optional) Wählen Sie „**Herunterladen**“, um [den Quellcode der Aktion anzuzeigen](workflows-view-source.md#workflows-view-source.title).
     + Wählen Sie **Zum Workflow** hinzufügen, um die Aktion zum Workflow-Diagramm hinzuzufügen und den zugehörigen Konfigurationsbereich zu öffnen.

1. Ändern Sie die Eigenschaften im YAML-Code nach Ihren Bedürfnissen. Eine Erläuterung der einzelnen verfügbaren Eigenschaften finden Sie in der[Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md).

1. (Optional) Wählen Sie „**Validieren**“, um den YAML-Code des Workflows vor dem Commit zu überprüfen.

1. Wählen Sie **Commit**, geben Sie eine Commit-Nachricht ein und wählen Sie erneut **Commit** aus.

------

# Rollbacks konfigurieren
<a name="deploy-consumption-enable-alarms"></a>

Wenn die Aktion ** CloudFormation Stack bereitstellen** fehlschlägt, führt dies standardmäßig CloudFormation dazu, dass der Stack auf den letzten bekannten stabilen Status zurückgesetzt wird. Sie können das Verhalten so ändern, dass Rollbacks nicht nur dann auftreten, wenn die Aktion fehlschlägt, sondern auch, wenn ein bestimmter CloudWatch Amazon-Alarm ausgelöst wird. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [Verwenden von CloudWatch Amazon-Alarmen](https://docs.aws.amazon.com/) im * CloudWatch Amazon-Benutzerhandbuch*.

Sie können auch das Standardverhalten so ändern, dass der Stack CloudFormation nicht zurückgesetzt wird, wenn die Aktion fehlschlägt. 

Verwenden Sie die folgenden Anweisungen, um Rollbacks zu konfigurieren.

**Anmerkung**  
Sie können ein Rollback nicht manuell starten.

------
#### [ Visual ]

**Bevor Sie beginnen**

1. Stellen Sie sicher, dass Sie über einen [Workflow](workflow.md) verfügen, der eine funktionierende Aktion „** CloudFormation Stack bereitstellen**“ beinhaltet. Weitere Informationen finden Sie unter [Einen CloudFormation Stack bereitstellen](deploy-action-cfn.md).

1. Stellen Sie sicher, dass Sie in der **Rolle, die im Feld Stack-Rolle — optional** der Aktion ** CloudFormation Stack bereitstellen** angegeben ist, die **CloudWatchFullAccess**Berechtigung angeben. Informationen zum Erstellen dieser Rolle mit den entsprechenden Berechtigungen finden Sie unter[Schritt 2: AWS Rollen erstellen](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

**So konfigurieren Sie Rollback-Alarme für die Aktion „Stack bereitstellen“ CloudFormation**

1. [Öffnen Sie die Konsole unter https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen Ihres Workflows. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **Visual**.

1. Wählen Sie Ihre ** CloudFormation Stack-Aktion „Deploy**“.

1. Wählen Sie im Detailbereich **Konfiguration** aus.

1. Erweitern Sie unten die Option **Erweitert**.

1. Wählen Sie unter **Alarm überwachen ARNs** die Option **Alarm hinzufügen** aus.

1. Geben Sie Informationen in die folgenden Felder ein.
   + **Alarm ARN**

     Geben Sie den Amazon-Ressourcennamen (ARN) eines CloudWatch Amazon-Alarms an, der als Rollback-Trigger verwendet werden soll. Beispiel, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Sie können maximal fünf Rollback-Trigger haben.
**Anmerkung**  
Wenn Sie einen CloudWatch Alarm-ARN angeben, müssen Sie auch zusätzliche Berechtigungen konfigurieren, damit die Aktion darauf zugreifen kann CloudWatch. Weitere Informationen finden Sie unter [Rollbacks konfigurieren](#deploy-consumption-enable-alarms).
   + **Dauer der Überwachung**

     Geben Sie einen Zeitraum von 0 bis 180 Minuten an, in dem die angegebenen Alarme CloudFormation überwacht werden. Die Überwachung beginnt, *nachdem* alle Stack-Ressourcen bereitgestellt wurden. Wenn der Alarm innerhalb der angegebenen Überwachungszeit auftritt, CloudFormation schlägt die Bereitstellung fehl und der gesamte Stack-Vorgang wird rückgängig gemacht.

     Standard: 0. CloudFormation überwacht Alarme nur, während die Stack-Ressourcen bereitgestellt werden, nicht danach.

------
#### [ YAML ]

**Um Rollback-Trigger für die Aktion „Stack bereitstellen“ CloudFormation zu konfigurieren**

1. [Öffnen Sie die Konsole unter https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen eines Workflows, der die Aktion ** CloudFormation Stack bereitstellen** enthält. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **YAML.**

1. Fügen Sie die `monitor-timeout-in-minutes` Eigenschaften `monitor-alarm-arns` und im YAML-Code hinzu, um Rollback-Trigger hinzuzufügen. Eine Erläuterung der einzelnen Eigenschaften finden Sie unter. [Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md)

1. Stellen Sie sicher, dass Sie in der Rolle, die in der `role-arn` Eigenschaft der Aktion ** CloudFormation Stack bereitstellen** angegeben ist, die **CloudWatchFullAccess**entsprechende Berechtigung angeben. Informationen zum Erstellen dieser Rolle mit den entsprechenden Berechtigungen finden Sie unter[Schritt 2: AWS Rollen erstellen](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles).

------

------
#### [ Visual ]

**So deaktivieren Sie Rollbacks für die Aktion „Stack bereitstellen“ CloudFormation**

1. [Öffnen Sie die Konsole unter https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen eines Workflows, der die Aktion ** CloudFormation Stack bereitstellen** enthält. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **Visual**.

1. Wählen Sie Ihre ** CloudFormation Stack-Aktion „Deploy**“.

1. Wählen Sie im Detailbereich **Konfiguration** aus.

1. Erweitern Sie unten die Option **Erweitert**.

1. Aktivieren Sie **„Rollback deaktivieren“**.

------
#### [ YAML ]

**Um Rollbacks für die Aktion „Stack bereitstellen“ CloudFormation zu deaktivieren**

1. [Öffnen Sie die Konsole unter https://codecatalyst.aws/ CodeCatalyst .](https://codecatalyst.aws/)

1. Wählen Sie Ihr Projekt.

1. **Wählen Sie im Navigationsbereich **CI/CD** und dann Workflows aus.**

1. Wählen Sie den Namen eines Workflows, der die Aktion ** CloudFormation Stack bereitstellen** enthält. Sie können nach dem Quell-Repository oder dem Branch-Namen filtern, in dem der Workflow definiert ist, oder nach Workflow-Namen oder -Status filtern.

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

1. Wählen Sie **YAML.**

1. Fügen Sie die `disable-rollback: 1` Eigenschaft im YAML-Code hinzu, um Rollbacks zu verhindern. Eine Erläuterung dieser Eigenschaft finden Sie unter. [Aktion CloudFormation 'Stack bereitstellen' YAML](deploy-action-ref-cfn.md)

------

# CloudFormation 'Stack'-Variablen bereitstellen
<a name="deploy-action-cfn-variables"></a>

Die Aktion „** CloudFormation Stack bereitstellen**“ erzeugt und setzt zur Laufzeit die folgenden Variablen. Diese werden als *vordefinierte Variablen* bezeichnet.

Hinweise zum Verweisen auf diese Variablen in einem Workflow finden Sie unter[Verwenden vordefinierter Variablen](workflows-using-predefined-variables.md).


| Key (Schlüssel) | Value (Wert) | 
| --- | --- | 
|  Bereitstellungsplattform  |  Der Name der Bereitstellungsplattform. Fest codiert auf. `AWS:CloudFormation`  | 
|  Region  |  Der Regionalcode von AWS-Region , für den während der Workflow-Ausführung bereitgestellt wurde. Beispiel: `us-west-2`  | 
|  Stack-ID  |  Der Amazon-Ressourcenname (ARN) des bereitgestellten Stacks. Beispiel: `arn:aws:cloudformation:us-west-2:111122223333:stack/codecatalyst-cfn-stack/6aad4380-100a-11ec-a10a-03b8a84d40df`  | 

# Aktion CloudFormation 'Stack bereitstellen' YAML
<a name="deploy-action-ref-cfn"></a>

Im Folgenden finden Sie die YAML-Definition der ** CloudFormation Stack-Aktion Deploy**. Informationen zur Verwendung dieser Aktion finden Sie unter[Einen CloudFormation Stack bereitstellen](deploy-action-cfn.md).

Diese Aktionsdefinition ist als Abschnitt in einer umfassenderen Workflow-Definitionsdatei vorhanden. Weitere Informationen über diese Datei finden Sie unter [YAML-Workflow-Definition](workflow-reference.md).

**Anmerkung**  
Die meisten der folgenden YAML-Eigenschaften haben entsprechende Benutzeroberflächenelemente im visuellen Editor. Verwenden Sie **Strg\$1F**, um nach einem UI-Element zu suchen. Das Element wird mit der zugehörigen YAML-Eigenschaft aufgelistet.

```
# The workflow definition starts here.
# See Eigenschaften der obersten Ebene for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.    
  DeployCloudFormationStack:  
    Identifier: aws/cfn-deploy@v1
    DependsOn:
      - build-action
    Compute:  
      Type: EC2 | Lambda
      Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployRole
    Inputs:
      Sources:
        - source-name-1
      Artifacts:
        - CloudFormation-artifact
    Configuration:
      name: stack-name
      region: us-west-2
      template: template-path
      role-arn: arn:aws:iam::123456789012:role/StackRole        
      capabilities: CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND
      parameter-overrides: KeyOne=ValueOne,KeyTwo=ValueTwo | path-to-JSON-file
      no-execute-changeset: 1|0
      fail-on-empty-changeset: 1|0
      disable-rollback: 1|0
      termination-protection: 1|0
      timeout-in-minutes: minutes
      notification-arns: arn:aws:sns:us-east-1:123456789012:MyTopic,arn:aws:sns:us-east-1:123456789012:MyOtherTopic
      monitor-alarm-arns: arn:aws:cloudwatch::123456789012:alarm/MyAlarm,arn:aws:cloudwatch::123456789012:alarm/MyOtherAlarm
      monitor-timeout-in-minutes: minutes       
      tags: '[{"Key":"MyKey1","Value":"MyValue1"},{"Key":"MyKey2","Value":"MyValue2"}]'
```

## DeployCloudFormationStack
<a name="deploy.action.cfn.deploycloudformationstack"></a>

(Erforderlich)

Geben Sie den Namen der Aktion an. Alle Aktionsnamen müssen innerhalb des Workflows eindeutig sein. Aktionsnamen sind auf alphanumerische Zeichen (a-z, A-Z, 0-9), Bindestriche (-) und Unterstriche (\$1) beschränkt. Leerzeichen sind nicht erlaubt. Sie können keine Anführungszeichen verwenden, um Sonderzeichen und Leerzeichen in Aktionsnamen zuzulassen.

Standard: `DeployCloudFormationStack_nn`.

Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“/**Anzeigename der Aktion**

## Identifier
<a name="deploy.action.cfn.identifier"></a>

(*DeployCloudFormationStack*/**Identifier**)

(Erforderlich)

Identifiziert die Aktion. Ändern Sie diese Eigenschaft nur, wenn Sie die Version ändern möchten. Weitere Informationen finden Sie unter [Angabe der zu verwendenden Aktionsversion](workflows-action-versions.md).

Standard: `aws/cfn-deploy@v1`.

**Entsprechende Benutzeroberfläche: Workflow-Diagram/ DeployCloudFormationStack \$1nn/ aws/cfn-deploy @v1 label**

## DependsOn
<a name="deploy.action.cfn.dependson"></a>

(*DeployCloudFormationStack*/**DependsOn**)

(Optional)

Geben Sie eine Aktion, eine Aktionsgruppe oder ein Gate an, die erfolgreich ausgeführt werden müssen, damit diese Aktion ausgeführt werden kann.

Weitere Hinweise zur Funktion „Hängt davon ab“ finden Sie unter. [Aktionen sequenzieren](workflows-depends-on.md)

Entsprechende Benutzeroberfläche: Registerkarte „Eingaben“/„**Hängt davon ab**“ — optional

## Compute
<a name="deploy.action.cfn.computename"></a>

(*DeployCloudFormationStack*/**Compute**)

(Optional)

Die Rechen-Engine, mit der Ihre Workflow-Aktionen ausgeführt wurden. Sie können die Berechnung entweder auf Workflow-Ebene oder auf Aktionsebene angeben, aber nicht beide. Wenn auf Workflow-Ebene angegeben, gilt die Rechenkonfiguration für alle im Workflow definierten Aktionen. Auf Workflow-Ebene können Sie auch mehrere Aktionen auf derselben Instanz ausführen. Weitere Informationen finden Sie unter [Rechenleistung für mehrere Aktionen gemeinsam nutzen](compute-sharing.md).

Entsprechende Benutzeroberfläche: *keine*

## Type
<a name="deploy.action.cfn.computetype"></a>

(*DeployCloudFormationStack*/Compute/**Type**)

([Compute](#deploy.action.cfn.computename)Erforderlich, falls enthalten)

Der Typ der Compute Engine. Sie können einen der folgenden Werte verwenden:
+ **EC2** (visueller Editor) oder `EC2` (YAML-Editor)

  Optimiert für Flexibilität bei Aktionsläufen.
+ **Lambda** (visueller Editor) oder `Lambda` (YAML-Editor)

  Optimierte Startgeschwindigkeiten für Aktionen.

Weitere Informationen zu Datentypen finden Sie unter [Berechnungstypen](workflows-working-compute.md#compute.types).

**Entsprechende Benutzeroberfläche: Konfiguration tab/Advanced — optional/ Berechnungstyp**

## Fleet
<a name="deploy.action.cfn.computefleet"></a>

(*DeployCloudFormationStack*/Compute/**Fleet**)

(Optional)

Geben Sie die Maschine oder Flotte an, auf der Ihr Workflow oder Ihre Workflow-Aktionen ausgeführt werden sollen. Bei bedarfsgesteuerten Flotten stellt der Workflow zu Beginn einer Aktion die benötigten Ressourcen bereit, und die Maschinen werden zerstört, wenn die Aktion abgeschlossen ist. Beispiele für Flotten auf Abruf:`Linux.x86-64.Large`,. `Linux.x86-64.XLarge` Weitere Informationen zu Flotten auf Abruf finden Sie unter. [Eigenschaften von On-Demand-Flotten](workflows-working-compute.md#compute.on-demand)

Bei bereitgestellten Flotten konfigurieren Sie eine Reihe von dedizierten Maschinen, um Ihre Workflow-Aktionen auszuführen. Diese Maschinen bleiben inaktiv und können sofort Aktionen ausführen. Weitere Informationen zu bereitgestellten Flotten finden Sie unter. [Eigenschaften von bereitgestellten Flotten](workflows-working-compute.md#compute.provisioned-fleets)

Wenn `Fleet` es weggelassen wird, ist die Standardeinstellung. `Linux.x86-64.Large`

**Entsprechende Benutzeroberfläche: Konfiguration tab/Advanced — optional/ Compute Fleet**

## Timeout
<a name="deploy.action.cfn.timeout"></a>

(*DeployCloudFormationStack*/**Timeout**)

(Optional)

Geben Sie an, wie lange die Aktion in Minuten (YAML-Editor) oder Stunden und Minuten (visueller Editor) ausgeführt werden kann, bevor die Aktion CodeCatalyst beendet wird. Das Minimum beträgt 5 Minuten und das Maximum ist unter beschrieben[Kontingente für Workflows in CodeCatalyst](workflows-quotas.md). Das Standard-Timeout entspricht dem maximalen Timeout.

Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“/**Timeout** in Minuten — optional

## Environment
<a name="deploy.action.cfn.environment"></a>

(*DeployCloudFormationStack*/**Environment**)

(Erforderlich)

Geben Sie die CodeCatalyst Umgebung an, die für die Aktion verwendet werden soll. Die Aktion stellt eine Verbindung mit der AWS-Konto optionalen Amazon VPC her, die in der ausgewählten Umgebung angegeben ist. Die Aktion verwendet die in der Umgebung angegebene Standard-IAM-Rolle, um sich mit der Amazon VPC zu verbinden AWS-Konto, und verwendet die in der [Amazon VPC-Verbindung angegebene IAM-Rolle, um eine Verbindung zur Amazon VPC](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html) herzustellen.

**Anmerkung**  
Wenn die Standard-IAM-Rolle nicht über die für die Aktion erforderlichen Berechtigungen verfügt, können Sie die Aktion so konfigurieren, dass sie eine andere Rolle verwendet. Weitere Informationen finden Sie unter [Die IAM-Rolle einer Aktion ändern](deploy-environments-switch-role.md).

Weitere Informationen zu Umgebungen finden Sie unter [Einsatz in AWS-Konten und VPCs](deploy-environments.md) und[Erstellen einer Umgebung](deploy-environments-creating-environment.md).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration/Umgebung“**

## Name
<a name="deploy.action.cfn.environment.name"></a>

(*DeployCloudFormationStack*/Environment/**Name**)

(Erforderlich, falls [Environment](#deploy.action.cfn.environment) enthalten)

Geben Sie den Namen einer vorhandenen Umgebung an, die Sie der Aktion zuordnen möchten.

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration/Umgebung“**

## Connections
<a name="deploy.action.cfn.environment.connections"></a>

(*DeployCloudFormationStack*/Environment/**Connections**)

(Optional in neueren Versionen der Aktion; in älteren Versionen erforderlich)

Geben Sie die Kontoverbindung an, die der Aktion zugeordnet werden soll. Sie können unter maximal eine Kontoverbindung angeben`Environment`.

Wenn Sie keine Kontoverbindung angeben:
+ Die Aktion verwendet die AWS-Konto Verbindung und die Standard-IAM-Rolle, die in der Umgebung in der CodeCatalyst Konsole angegeben sind. Informationen zum Hinzufügen einer Kontoverbindung und einer Standard-IAM-Rolle zur Umgebung finden Sie unter. [Erstellen einer Umgebung](deploy-environments-creating-environment.md)
+ Die Standard-IAM-Rolle muss die Richtlinien und Berechtigungen enthalten, die für die Aktion erforderlich sind. **Informationen zu diesen Richtlinien und Berechtigungen finden Sie in der Beschreibung der Role-Eigenschaft in der YAML-Definitionsdokumentation der Aktion.**

Weitere Informationen zu Kontoverbindungen finden Sie unter[Ermöglichen des Zugriffs auf AWS Ressourcen mit verbundenen AWS-Konten](ipa-connect-account.md). Hinweise zum Hinzufügen einer Kontoverbindung zu einer Umgebung finden Sie unter[Erstellen einer Umgebung](deploy-environments-creating-environment.md).

Entsprechende Benutzeroberfläche: Je nach Aktionsversion eine der folgenden Optionen:
+ (Neuere Versionen) tab/Environment/What Die Konfiguration ist da*my-environment*? **/Dreipunktmenü/ Rolle wechseln**
+ **(Ältere Versionen) Registerkarte „Konfiguration“/„/Kontoverbindung Environment/account/role AWS **

## Name
<a name="deploy.action.cfn.environment.connections.name"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Name**)

(Erforderlich, falls enthalten[Connections](#deploy.action.cfn.environment.connections))

Geben Sie den Namen der Kontoverbindung an.

Entsprechende Benutzeroberfläche: Je nach Aktionsversion eine der folgenden Optionen:
+ (Neuere Versionen) tab/Environment/What Die Konfiguration ist da*my-environment*? **/Dreipunktmenü/ Rolle wechseln**
+ **(Ältere Versionen) Registerkarte „Konfiguration“/„/Kontoverbindung Environment/account/role AWS **

## Role
<a name="deploy.action.cfn.environment.connections.role"></a>

(*DeployCloudFormationStack*/Environment/Connections/**Role**)

(Erforderlich, falls enthalten[Connections](#deploy.action.cfn.environment.connections))

Geben Sie den Namen der IAM-Rolle an, die von der ** CloudFormation Stack-Aktion Deploy** für den Zugriff auf AWS den CloudFormation Dienst verwendet wird. Stellen Sie sicher, dass Sie [die Rolle zu Ihrem CodeCatalyst Bereich hinzugefügt](ipa-connect-account-addroles.md) haben und dass die Rolle die folgenden Richtlinien enthält.

Wenn Sie keine IAM-Rolle angeben, verwendet die Aktion die Standard-IAM-Rolle, die in der [Umgebung](deploy-environments.md) in der CodeCatalyst Konsole aufgeführt ist. Wenn Sie die Standardrolle in der Umgebung verwenden, stellen Sie sicher, dass sie über die folgenden Richtlinien verfügt.
+ Die folgende Berechtigungsrichtlinie:
**Warnung**  
Beschränken Sie die Berechtigungen auf die in der folgenden Richtlinie angegebenen. Die Verwendung einer Rolle mit umfassenderen Berechtigungen kann ein Sicherheitsrisiko darstellen.
**Anmerkung**  
Wenn die Rolle zum ersten Mal verwendet wird, verwenden Sie den folgenden Platzhalter in der Ressourcenrichtlinienanweisung und grenzen Sie dann die Richtlinie mit dem Ressourcennamen ab, sobald sie verfügbar ist.  

  ```
  "Resource": "*"
  ```
+ Die folgende benutzerdefinierte Vertrauensrichtlinie:

**Anmerkung**  
Sie können die `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle mit dieser Aktion verwenden, wenn Sie möchten. Weitere Informationen über diese Rolle finden Sie unter [Die **CodeCatalystWorkflowDevelopmentRole-*spaceName***Rolle für Ihr Konto und Ihren Bereich erstellen](ipa-iam-roles.md#ipa-iam-roles-service-create). Beachten Sie, dass die `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle über volle Zugriffsberechtigungen verfügt, was ein Sicherheitsrisiko darstellen kann. Wir empfehlen, diese Rolle nur in Tutorials und Szenarien zu verwenden, in denen die Sicherheit weniger wichtig ist. 

Entsprechende Benutzeroberfläche: Je nach Aktionsversion eine der folgenden Optionen:
+ (Neuere Versionen) tab/Environment/What Die Konfiguration ist da*my-environment*? **/Dreipunktmenü/ Rolle wechseln**
+ **(Ältere Versionen) Registerkarte Environment/account/role „Konfiguration“ /' '/ Rolle**

## Inputs
<a name="deploy.action.cfn.inputs"></a>

(*DeployCloudFormationStack*/**Inputs**)

(Optional)

`Inputs`In diesem Abschnitt werden die Daten definiert, die während einer `DeployCloudFormationStack` Workflow-Ausführung benötigt werden.

**Anmerkung**  
Pro ** CloudFormation Stack-Aktion vom Typ Deploy** sind maximal vier Eingaben (eine Quelle und drei Artefakte) zulässig.

Wenn Sie auf Dateien verweisen müssen, die sich in verschiedenen Eingaben befinden (z. B. eine Quelle und ein Artefakt), ist die Quelleingabe die primäre Eingabe und das Artefakt die sekundäre Eingabe. Verweise auf Dateien in sekundären Eingaben benötigen ein spezielles Präfix, um sie von der primären Eingabe zu unterscheiden. Details hierzu finden Sie unter [Beispiel: Referenzieren von Dateien in mehreren Artefakten](workflows-working-artifacts-ex.md#workflows-working-artifacts-ex-ref-file).

**Entsprechende Benutzeroberfläche: Registerkarte „Eingaben“**

## Sources
<a name="deploy.action.cfn.inputs.sources"></a>

(*DeployCloudFormationStack*/Inputs/**Sources**)

(Erforderlich, wenn Ihre AWS SAM Vorlage CloudFormation oder Ihre Vorlage in einem Quell-Repository gespeichert ist)

Wenn Ihre AWS SAM Vorlage CloudFormation oder Ihre Vorlage in einem Quell-Repository gespeichert ist, geben Sie die Bezeichnung dieses Quell-Repositorys an. Derzeit ist das einzige unterstützte Label`WorkflowSource`.

Wenn Ihre AWS SAM Vorlage CloudFormation oder nicht in einem Quell-Repository enthalten ist, muss sie sich in einem Artefakt befinden, das durch eine andere Aktion generiert wurde, oder in einem Amazon S3 S3-Bucket.

Weitere Informationen zu Quellen finden Sie unter [Quell-Repositorys mit Workflows verbinden](workflows-sources.md).

**Entsprechende Benutzeroberfläche: Registerkarte „Eingaben“/„Quellen“ — optional**

## Artifacts - input
<a name="deploy.action.cfn.inputs.artifacts"></a>

(*DeployCloudFormationStack*/Inputs/**Artifacts**)

(Erforderlich, wenn Ihre AWS SAM Vorlage CloudFormation oder Ihre Vorlage in einem [Ausgabeartefakt](workflows-working-artifacts-output.md) einer vorherigen Aktion gespeichert ist)

Wenn die AWS SAM Vorlage CloudFormation oder, die Sie bereitstellen möchten, in einem Artefakt enthalten ist, das durch eine vorherige Aktion generiert wurde, geben Sie dieses Artefakt hier an. Wenn Ihre CloudFormation Vorlage nicht in einem Artefakt enthalten ist, muss sie sich in Ihrem Quell-Repository oder in einem Amazon S3 S3-Bucket befinden.

Weitere Informationen zu Artefakten, einschließlich Beispielen, finden Sie unter. [Artefakte und Dateien zwischen Aktionen teilen](workflows-working-artifacts.md)

Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“/„**Artefakte“ — optional**

## Configuration
<a name="deploy.action.cfn.configuration"></a>

(*DeployCloudFormationStack*/**Configuration**)

(Erforderlich)

Ein Abschnitt, in dem Sie die Konfigurationseigenschaften der Aktion definieren können.

Entsprechende Benutzeroberfläche: Registerkarte „**Konfiguration**“

## name
<a name="deploy.action.cfn.stackname"></a>

(*DeployCloudFormationStack*/Configuration/**name**)

(Erforderlich)

Geben Sie einen Namen für den CloudFormation Stack an, den die Aktion ** CloudFormation Stack bereitstellen** erstellt oder aktualisiert.

Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“/Name des **Stacks**

## region
<a name="deploy.action.cfn.stackregion"></a>

(*DeployCloudFormationStack*/Configuration/**region**)

(Erforderlich)

Geben Sie an, AWS-Region in welchem Bereich der Stack bereitgestellt werden soll. Eine Liste der Regionscodes finden Sie unter [Regionale Endpunkte](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“/Region „Stack“**

## template
<a name="deploy.action.cfn.templatepath"></a>

(*DeployCloudFormationStack*/Configuration/**template**)

(Erforderlich)

Geben Sie den Namen und den Pfad zu Ihrer Datei CloudFormation oder der AWS SAM Vorlagendatei an. Die Vorlage kann im JSON- oder YAML-Format vorliegen und sich in einem Quell-Repository, einem Artefakt aus einer früheren Aktion oder einem Amazon S3 S3-Bucket befinden. Wenn sich die Vorlagendatei in einem Quell-Repository oder Artefakt befindet, ist der Pfad relativ zur Quelle oder zum Artefakt-Stamm. Wenn sich die Vorlage in einem Amazon S3 S3-Bucket befindet, entspricht der Pfad dem **Objekt-URL-Wert** der Vorlage.

Beispiele:

`./MyFolder/MyTemplate.json`

`MyFolder/MyTemplate.yml`

`https://MyBucket.s3.us-west-2.amazonaws.com/MyTemplate.yml`

**Anmerkung**  
Möglicherweise müssen Sie dem Dateipfad der Vorlage ein Präfix hinzufügen, um anzugeben, in welchem Artefakt oder in welcher Quelle die Vorlage gefunden werden soll. Weitere Informationen erhalten Sie unter [Quell-Repository-Dateien referenzieren](workflows-sources-reference-files.md) und [Referenzieren von Dateien in einem Artefakt](workflows-working-artifacts-refer-files.md).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration/Vorlage“**

## role-arn
<a name="deploy.action.cfn.stackrolearn"></a>

(*DeployCloudFormationStack*/Configuration/**role-arn**)

(Erforderlich)

Geben Sie den Amazon-Ressourcennamen (ARN) der Stack-Rolle an. CloudFormation verwendet diese Rolle, um auf Ressourcen in Ihrem Stack zuzugreifen und diese zu ändern. Beispiel: `arn:aws:iam::123456789012:role/StackRole`.

Stellen Sie sicher, dass die Stack-Rolle Folgendes beinhaltet:
+ Eine oder mehrere Berechtigungsrichtlinien. Die Richtlinien hängen von den Ressourcen ab, die Sie in Ihrem Stack haben. Wenn Ihr Stack beispielsweise eine AWS Lambda Funktion enthält, müssen Sie Berechtigungen hinzufügen, die Zugriff auf Lambda gewähren. Wenn Sie das unter beschriebene Tutorial befolgt haben[Tutorial: Eine serverlose Anwendung bereitstellen](deploy-tut-lambda.md), enthält es ein Verfahren mit dem Titel, [Um eine Stack-Rolle zu erstellen](deploy-tut-lambda.md#deploy-tut-lambda-cfn-roles-stack) das die Berechtigungen auflistet, die die Stack-Rolle benötigt, wenn Sie einen typischen serverlosen Anwendungsstapel bereitstellen.
**Warnung**  
Beschränken Sie die Berechtigungen auf diejenigen, die der CloudFormation Dienst für den Zugriff auf Ressourcen in Ihrem Stack benötigt. Die Verwendung einer Rolle mit umfassenderen Berechtigungen kann ein Sicherheitsrisiko darstellen.
+ Die folgende Vertrauensrichtlinie:

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

****  

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

------

Ordnen Sie diese Rolle optional Ihrer Kontoverbindung zu. Weitere Informationen zum Zuordnen einer IAM-Rolle zu einer Kontoverbindung finden Sie unter. [Hinzufügen von IAM-Rollen zu Kontoverbindungen](ipa-connect-account-addroles.md) Wenn Sie die Stack-Rolle nicht mit der Kontoverbindung verknüpfen, wird die Stack-Rolle nicht in der Dropdownliste **Stack-Rolle** im Visual Editor angezeigt. Der Rollen-ARN kann jedoch trotzdem mit dem YAML-Editor in dem `role-arn` Feld angegeben werden.

**Anmerkung**  
Sie können die `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle mit dieser Aktion verwenden, wenn Sie möchten. Weitere Informationen über diese Rolle finden Sie unter [Die **CodeCatalystWorkflowDevelopmentRole-*spaceName***Rolle für Ihr Konto und Ihren Bereich erstellen](ipa-iam-roles.md#ipa-iam-roles-service-create). Beachten Sie, dass die `CodeCatalystWorkflowDevelopmentRole-spaceName` Rolle über volle Zugriffsberechtigungen verfügt, was ein Sicherheitsrisiko darstellen kann. Wir empfehlen, diese Rolle nur in Tutorials und Szenarien zu verwenden, in denen die Sicherheit weniger wichtig ist. 

Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ **/Rolle „Stack“ — optional**

## capabilities
<a name="deploy.action.cfn.capabilities"></a>

(*DeployCloudFormationStack*/Configuration/**capabilities**)

(Erforderlich)

Geben Sie eine Liste der IAM-Funktionen an, die für die Erstellung bestimmter CloudFormation Stacks erforderlich sind. In den meisten Fällen können Sie `capabilities` den Standardwert von beibehalten. `CAPABILITY_IAM,CAPABILITY_NAMED_IAM,CAPABILITY_AUTO_EXPAND`

Wenn Sie `##[error] requires capabilities: [capability-name]` in den Protokollen Ihrer ** CloudFormation Stack-Aktion „Bereitstellen**“ etwas sehen, finden Sie unter Informationen [Wie behebe ich Fehler bei den IAM-Fähigkeiten?](troubleshooting-workflows.md#troubleshooting-workflows-capabilities) zur Behebung des Problems.

*Weitere Informationen zu IAM-Funktionen finden Sie im [IAM-Benutzerhandbuch unter Bestätigung von IAM-Ressourcen in CloudFormation Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).*

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /Erweitert/Funktionen**

## parameter-overrides
<a name="deploy.action.cfn.parameter.overrides"></a>

(*DeployCloudFormationStack*/Configuration/**parameter-overrides**)

(Optional)

Geben Sie in Ihrer CloudFormation AWS SAM Vorlage Parameter an, die keine Standardwerte haben oder für die Sie nicht standardmäßige Werte angeben möchten. Weitere Informationen zu Parametern finden Sie unter [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) im * AWS CloudFormation Benutzerhandbuch*.

Die `parameter-overrides` Unterkunft akzeptiert:
+ Eine JSON-Datei, die die Parameter und Werte enthält.
+ Eine durch Kommas getrennte Liste von Parametern und Werten.

**Um eine JSON-Datei anzugeben**

1. Stellen Sie sicher, dass die JSON-Datei eine der folgenden Syntaxen verwendet:

   ```
   {
     "Parameters": {
       "Param1": "Value1",
       "Param2": "Value2",
       ...
     }
   }
   ```

   Oder...

   ```
   [
     {
        "ParameterKey": "Param1",
        "ParameterValue": "Value1"
     },
     ...
   ]
   ```

   (Es gibt andere Syntaxen, aber sie werden CodeCatalyst zum Zeitpunkt des Schreibens nicht unterstützt.) Weitere Informationen zum Angeben von CloudFormation Parametern in einer JSON-Datei finden Sie unter [Unterstützte JSON-Syntax](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/deploy/index.html#supported-json-syntax) in der *AWS CLI Befehlsreferenz.*

1. Geben Sie den Pfad zur JSON-Datei in einem der folgenden Formate an:
   + Wenn sich Ihre JSON-Datei in einem Ausgabeartefakt einer früheren Aktion befindet, verwenden Sie:

     `file:///artifacts/current-action-name/output-artifact-name/path-to-json-file`

     Einzelheiten finden Sie in **Beispiel 1.**
   + Wenn sich Ihre JSON-Datei in Ihrem Quell-Repository befindet, verwenden Sie:

     `file:///sources/WorkflowSource/path-to-json-file`

     Einzelheiten finden Sie in **Beispiel 2.**

     **Beispiel 1** — Die JSON-Datei befindet sich in einem Ausgabeartefakt

     ```
     ##My workflow YAML
     ...
     Actions:
       MyBuildAction:
         Identifier: aws/build@v1
         Outputs:
           Artifacts:
             - Name: ParamArtifact
               Files:
                 - params.json
         Configuration:
         ...
       MyDeployCFNStackAction:
         Identifier: aws/cfn-deploy@v1
         Configuration:
           parameter-overrides: file:///artifacts/MyDeployCFNStackAction/ParamArtifact/params.json
     ```

     **Beispiel 2** — Die JSON-Datei befindet sich in Ihrem Quell-Repository in einem Ordner namens `my/folder`

     ```
     ##My workflow YAML
     ...
     Actions:
       MyDeployCloudFormationStack:
         Identifier: aws/cfn-deploy@v1
         Inputs:
           Sources:
             - WorkflowSource
         Configuration:
           parameter-overrides: file:///sources/WorkflowSource/my/folder/params.json
     ```

**Um eine durch Kommas getrennte Liste von Parametern zu verwenden**
+ Fügen Sie der `parameter-overrides` Eigenschaft Parameter-Name-Wert-Paare im folgenden Format hinzu:

  `param-1=value-1,param-2=value-2`

  Nehmen wir zum Beispiel die folgende Vorlage an: CloudFormation 

  ```
  ##My CloudFormation template
  
  Description: My CloudFormation template
  
  Parameters:
    InstanceType:
      Description: Defines the Amazon EC2 compute for the production server.
      Type: String
      Default: t2.micro
      AllowedValues:
        - t2.micro
        - t2.small
        - t3.medium
      
  Resources:
  ...
  ```

  ... Sie könnten die `parameter-overrides` Eigenschaft wie folgt festlegen:

  ```
  ##My workflow YAML
  ...
  Actions:
  ...
    DeployCloudFormationStack:
      Identifier: aws/cfn-deploy@v1
      Configuration:
        parameter-overrides: InstanceType=t3.medium,UseVPC=true
  ```
**Anmerkung**  
Sie können einen Parameternamen ohne einen entsprechenden Wert angeben, indem Sie `undefined` ihn als Wert verwenden. Beispiel:  
`parameter-overrides: MyParameter=undefined`  
 Das hat zur Folge, dass bei einem Stack-Update der vorhandene Parameterwert für den angegebenen Parameternamen CloudFormation verwendet wird.

Entsprechende Benutzeroberfläche:
+ **Registerkarte „Konfiguration/Erweitert/Parameterüberschreibungen“**
+ tab/Advanced/Parameter**Überschreibungen der Konfiguration/ Geben Sie Überschreibungen mithilfe einer Datei an**
+ **Überschreibungen der tab/Advanced/Parameter Konfiguration/ Spezifizieren Sie Überschreibungen mithilfe eines Wertesatzes**

## no-execute-changeset
<a name="deploy.action.cfn.noexecutechangeset"></a>

(*DeployCloudFormationStack*/Configuration/**no-execute-changeset**)

(Optional)

Geben Sie an, ob Sie den CloudFormation Änderungssatz erstellen und dann beenden möchten CodeCatalyst , bevor Sie ihn ausführen. Auf diese Weise haben Sie die Möglichkeit, den Änderungssatz in der CloudFormation Konsole zu überprüfen. Wenn Sie feststellen, dass der Änderungssatz gut aussieht, deaktivieren Sie diese Option und führen Sie dann den Workflow erneut aus, sodass Sie den Änderungssatz erstellen und ausführen CodeCatalyst können, ohne ihn anzuhalten. Standardmäßig wird der Änderungssatz erstellt und ausgeführt, ohne ihn anzuhalten. Weitere Informationen finden Sie im CloudFormation [Deploy-Parameter](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) in der *AWS CLI Befehlsreferenz*. Weitere Informationen zum Anzeigen von Änderungssätzen finden Sie im *AWS CloudFormation Benutzerhandbuch* unter [Änderungssätze anzeigen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets-view.html).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /Erweitert/Änderungssatz nicht ausführen**

## fail-on-empty-changeset
<a name="deploy.action.cfn.failonemptychangeset"></a>

(*DeployCloudFormationStack*/Configuration/**fail-on-empty-changeset**)

(Optional)

Geben Sie an, ob die Aktion „** CloudFormation Stack bereitstellen**“ fehlschlagen soll CodeCatalyst , wenn der CloudFormation Änderungssatz leer ist. (Wenn ein Änderungssatz leer ist, bedeutet dies, dass während der letzten Bereitstellung keine Änderungen am Stack vorgenommen wurden.) Standardmäßig kann die Aktion fortgesetzt werden, wenn der Änderungssatz leer ist, und es wird eine `UPDATE_COMPLETE` Meldung zurückgegeben, obwohl der Stack nicht aktualisiert wurde.

Weitere Informationen zu dieser Einstellung finden Sie im CloudFormation [Deploy-Parameter](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) in der *AWS CLI Befehlsreferenz*. Weitere Informationen zu Änderungssätzen finden Sie unter [Aktualisieren von Stacks mithilfe von Änderungssätzen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) im *AWS CloudFormation Benutzerhandbuch*.

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /Erweitert/Fehler bei leerem Changeset**

## disable-rollback
<a name="deploy.action.cfn.disablerollback"></a>

(*DeployCloudFormationStack*/Configuration/**disable-rollback**)

(Optional)

Geben Sie an, ob Sie die Stack-Bereitstellung rückgängig CodeCatalyst machen möchten, falls sie fehlschlägt. Durch das Rollback wird der Stack in den letzten bekannten stabilen Zustand zurückversetzt. Standardmäßig werden Rollbacks aktiviert. Weitere Informationen zu dieser Einstellung finden Sie im CloudFormation [Deploy-Parameter](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/index.html) in der *AWS CLI Befehlsreferenz.*

Weitere Informationen dazu, wie die Aktion ** CloudFormation Stack bereitstellen** Rollbacks behandelt, finden Sie unter[Rollbacks konfigurieren](deploy-consumption-enable-alarms.md).

Weitere Informationen zum Rollback eines Stacks finden Sie unter [Optionen für Stack-Fehler](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) im *AWS CloudFormation Benutzerhandbuch*.

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /Erweitert/Rollback deaktivieren**

## termination-protection
<a name="deploy.action.cfn.terminationprotection"></a>

(*DeployCloudFormationStack*/Configuration/**termination-protection**)

(Optional)

Geben Sie an, ob der ** CloudFormation Deploy-Stack dem Stack**, den er bereitstellt, einen Kündigungsschutz hinzufügen soll. Wenn ein Benutzer versucht, einen Stack mit aktiviertem Beendigungsschutz zu löschen, schlägt das Löschen fehl und der Stack – einschließlich seines Status – bleibt unverändert. Standardmäßig ist der Kündigungsschutz deaktiviert. Weitere Informationen finden Sie im *AWS CloudFormation Benutzerhandbuch* unter [Einen Stack vor dem Löschen schützen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /„ Erweitert/Kündigungsschutz“**

## timeout-in-minutes
<a name="deploy.action.cfn.timeoutinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**timeout-in-minutes**)

(Optional)

Geben Sie die Zeitspanne in Minuten an, die zur Verfügung stehen CloudFormation soll, bevor bei der Stackerstellung ein Timeout eintritt und der Stack-Status auf gesetzt wird. `CREATE_FAILED` Wenn CloudFormation innerhalb des zugeteilten Zeitraums nicht den gesamten Stack erstellen kann, schlägt die Stack-Erstellung aufgrund des Timeouts fehl und für den Stack wird ein Rollback durchgeführt.

Standardmäßig gibt es keinen Timeout für die Stack-Erstellung. Allerdings gibt es möglicherweise für einzelne Ressourcen einen Timeout, basierend auf der Art des von ihnen implementierten Services. Wenn beispielsweise eine einzelne Ressource in Ihrem Stack abläuft, läuft die Stack-Erstellung ebenfalls aus, auch wenn der von Ihnen angegebene Timeout für die Stack-Erstellung noch nicht erreicht wurde.

**Entsprechende Benutzeroberfläche: Registerkarte CloudFormation „Konfiguration“ /„ Erweitert/Timeout“**

## notification-arns
<a name="deploy.action.cfn.notificationarns"></a>

(*DeployCloudFormationStack*/Configuration/**notification-arns**)

(Optional)

Geben Sie den ARN eines Amazon SNS SNS-Themas an, CodeCatalyst an das Sie Benachrichtigungen senden möchten. Beispiel, `arn:aws:sns:us-east-1:111222333:MyTopic`. Wenn die Aktion „** CloudFormation Stack bereitstellen**“ ausgeführt wird CodeCatalyst , wird CloudFormation für jedes CloudFormation Ereignis, das während der Erstellung oder Aktualisierung des Stacks auftritt, jeweils eine Benachrichtigung gesendet. (Die Ereignisse sind auf der Registerkarte **Ereignisse** der CloudFormation Konsole für den Stack sichtbar.) Sie können bis zu fünf Themen angeben. Weitere Informationen finden Sie unter [Was ist Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /„ Erweitert/Benachrichtigung“ ARNs**

## monitor-alarm-arns
<a name="deploy.action.cfn.monitoralarmarns"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-alarm-arns**)

(Optional)

Geben Sie den Amazon-Ressourcennamen (ARN) eines CloudWatch Amazon-Alarms an, der als Rollback-Trigger verwendet werden soll. Beispiel, `arn:aws:cloudwatch::123456789012:alarm/MyAlarm`. Sie können maximal fünf Rollback-Trigger haben.

**Anmerkung**  
Wenn Sie einen CloudWatch Alarm-ARN angeben, müssen Sie auch zusätzliche Berechtigungen konfigurieren, damit die Aktion darauf zugreifen kann CloudWatch. Weitere Informationen finden Sie unter [Rollbacks konfigurieren](deploy-consumption-enable-alarms.md).

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /„ Erweitert/Alarm überwachen“ ARNs**

## monitor-timeout-in-minutes
<a name="deploy.action.cfn.monitortimeinminutes"></a>

(*DeployCloudFormationStack*/Configuration/**monitor-timeout-in-minutes**)

(Optional)

Geben Sie einen Zeitraum zwischen 0 und 180 Minuten an, in dem die angegebenen Alarme CloudFormation überwacht werden. Die Überwachung beginnt, *nachdem* alle Stack-Ressourcen bereitgestellt wurden. Wenn der Alarm innerhalb der angegebenen Überwachungszeit auftritt, CloudFormation schlägt die Bereitstellung fehl und der gesamte Stack-Vorgang wird rückgängig gemacht.

Standard: 0. CloudFormation überwacht Alarme nur, während die Stack-Ressourcen bereitgestellt werden, nicht danach.

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /„ Erweitert/Zeit überwachen“**

## tags
<a name="deploy.action.cfn.tags"></a>

(*DeployCloudFormationStack*/Configuration/**tags**)

(Optional)

Geben Sie Tags an, die an Ihren Stack angehängt werden sollen. CloudFormation Tags sind beliebige Schlüssel-Wert-Paare, die Sie verwenden können, um Ihren Stack für Zwecke wie die Kostenzuweisung zu identifizieren. Weitere Informationen zu Tags und ihrer Verwendung finden Sie unter [Tagging Ihrer Ressourcen](https://docs.aws.amazon.com/) im *Amazon EC2-Benutzerhandbuch*. *Weitere Informationen zum Tagging finden Sie unter [CloudFormation Stack-Optionen einrichten](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) im AWS CloudFormation Benutzerhandbuch. CloudFormation*

Ein Schlüssel kann alphanumerische Zeichen oder Leerzeichen und bis zu 127 Zeichen enthalten. Ein Wert kann alphanumerische Zeichen oder Leerzeichen und bis zu 255 Zeichen enthalten.

Sie können bis zu 50 eindeutige Tags für jeden Stack hinzufügen.

**Entsprechende Benutzeroberfläche: Registerkarte „Konfiguration“ /„ Erweitert/Tags“**