

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.

# AWS SAM CLI
<a name="using-sam-cli"></a>

AWS Serverless Application Model Command Line Interface (AWS SAMCLI) ist ein Befehlszeilentool für die lokale Entwicklung und das Testen serverloser Anwendungen. AWS SAMCLIDamit können Sie Ihre serverlosen Anwendungen lokal erstellen, transformieren, bereitstellen, debuggen, verpacken, initialisieren und synchronisieren, bevor Sie sie in der Cloud bereitstellen.

AWS SAMCLIfunktioniert mit serverlosen Anwendungen, die mithilfe verschiedener Frameworks und Infrastructure-as-Code-Tools (IaC) definiert wurden und unterschiedliche Unterstützungsstufen bieten:
+ **AWS SAM Vorlagen** — Bietet systemeigenen Support mit dem gesamten Funktionsumfang, einschließlich lokaler Test-, Debugging-, Paketierungs- und Bereitstellungsfunktionen.
+ **AWS CDK-Anwendungen** — Unterstützt das lokale Testen von Lambda-Funktionen, nachdem Sie die AWS CDK-Anwendung mit dem Befehl cdk synth in CloudFormation Vorlagen synthetisiert haben.
+ **CloudFormation Vorlagen** — Bietet direkte Kompatibilität, da sie AWS SAM erweitert und serverlose Ressourcen unterstützt CloudFormation, die in Standardvorlagen definiert sind. CloudFormation 
+ **Terraform-Anwendungen** — Bietet eingeschränkte Unterstützung für die Erstellung und das lokale Testen von Lambda-Funktionen. Erfordert, dass Sie AWS SAM Vorlagenartefakte generieren, die Ihre Terraform-definierten Lambda-Funktionen darstellen.

Für die umfassendste Funktionsunterstützung und ein optimiertes Entwicklererlebnis empfehlen wir die Verwendung nativer Vorlagen. AWS SAM 

**Topics**
+ [Wie AWS SAMCLI werden Befehle dokumentiert](#using-sam-cli-documentation)
+ [Konfiguration der AWS SAMCLI](using-sam-cli-configure.md)
+ [AWS SAMCLIKernbefehle](using-sam-cli-corecommands.md)
+ [Lokales Testen mit AWS SAMCLI](using-sam-cli-local-testing.md)

## Wie AWS SAMCLI werden Befehle dokumentiert
<a name="using-sam-cli-documentation"></a>

AWS SAMCLIBefehle werden im folgenden Format dokumentiert:
+ **LinuxEingabeaufforderung** — Die Eingabeaufforderung ist standardmäßig dokumentiert und wird als (`$ `) angezeigt. Bei Windows spezifischen Befehlen wird (`> `) als Eingabeaufforderung verwendet. Lassen Sie das Eingabeaufforderungssymbol weg, wenn Sie Befehle eingeben.
+ **Verzeichnis** – Wenn Befehle in einem bestimmten Verzeichnis ausgeführt werden müssen, steht der Name des Verzeichnisses vor dem Eingabeaufforderungssymbol.
+ **Benutzereingabe** – Befehlstext, den Sie in der Befehlszeile eingeben, ist als **user input** formatiert.
+ **Austauschbarer Text** — Variabler Text, wie z. B. Dateinamen und Parameter, wird als *replaceable text* formatiert. Bei mehrzeiligen Befehlen oder Befehlen, für die eine bestimmte Tastatureingabe erforderlich ist, können Tastatureingaben auch als austauschbarer Text angezeigt werden. Beispiel, *ENTER*.
+ **Ausgabe** — Die als Antwort auf den Befehl zurückgegebene Ausgabe ist formatiert als. `computer output`

Der folgende `sam deploy` Befehl und die folgende Ausgabe sind ein Beispiel:

```
$ sam deploy --guided --template template.yaml

Configuring SAM deploy
======================

    Looking for config file [samconfig.toml] :  Found
    Reading default arguments  :  Success

    Setting default arguments for 'sam deploy'
    =========================================
    Stack Name [sam-app]: ENTER
    AWS Region [us-west-2]: ENTER
    #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
    Confirm changes before deploy [y/N]: ENTER
    #SAM needs permission to be able to create roles to connect to the resources in your template
    Allow SAM CLI IAM role creation [Y/n]: ENTER
    #Preserves the state of previously provisioned resources when an operation fails
    Disable rollback [y/N]: ENTER
    HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
    Save arguments to configuration file [Y/n]: ENTER
    SAM configuration file [samconfig.toml]: ENTER
    SAM configuration environment [default]: ENTER
```

1. `sam deploy --guided --template template.yaml`ist der Befehl, den Sie in der Befehlszeile eingeben.

1. **sam deploy --guided --template**sollte unverändert bereitgestellt werden.

1. *template.yaml*kann durch Ihren spezifischen Dateinamen ersetzt werden.

1. Die Ausgabe beginnt um`Configuring SAM deploy`.

1. *y*Geben Sie in der Ausgabe die ersetzbaren Werte an, die Sie angeben. *ENTER*

# Konfiguration der AWS SAMCLI
<a name="using-sam-cli-configure"></a>

Einer der Vorteile von AWS SAM besteht darin, dass die Zeit eines Entwicklers optimiert wird, indem sich wiederholende Aufgaben entfallen. AWS SAMCLIenthält eine nach diesem `samconfig` Zweck benannte Konfigurationsdatei. Standardmäßig AWS SAMCLI ist keine Konfiguration für erforderlich, aber Sie können Ihre Konfigurationsdatei aktualisieren, damit Sie Befehle mit weniger Parametern ausführen können, indem AWS SAM Sie stattdessen Ihre benutzerdefinierten Parameter in Ihrer Konfigurationsdatei referenzieren. Die Beispiele in der folgenden Tabelle zeigen, wie Sie Ihre Befehle optimieren können:


| Original | Optimiert mit `samconfig` | 
| --- | --- | 
| **sam build --cached --parallel --use-containers** | **sam build** | 
| **sam local invoke --env-vars locals.json** | **sam local invoke** | 
| **sam local start-api --env-vars locals.json --warm-containers EAGER** | **sam local start-api** | 

Das AWS SAMCLI bietet eine Reihe von Befehlen, mit denen Entwickler serverlose Anwendungen erstellen, entwickeln und bereitstellen können. Jeder dieser Befehle ist mit optionalen Flags konfigurierbar, die auf den Einstellungen der Anwendung und des Entwicklers basieren. Weitere Informationen finden Sie im [AWS SAMCLIInhalt in GitHub](https://github.com/aws/aws-sam-cli)

In den Themen in diesem Abschnitt erfahren Sie, wie Sie Ihre Standardeinstellungen erstellen [AWS SAMCLIKonfigurationsdatei](serverless-sam-cli-config.md) und anpassen können, um die Entwicklungszeit für Ihre serverlose Anwendung zu optimieren.

**Topics**
+ [So erstellen Sie Ihre Konfigurationsdatei (die `samconfig` Datei)](#using-sam-cli-configure-create)
+ [Konfigurieren Sie die Projekteinstellungen](#using-sam-cli-configure-project)
+ [Konfigurieren Sie Anmeldeinformationen und Grundeinstellungen](#using-sam-cli-configure-basic)

## So erstellen Sie Ihre Konfigurationsdatei (die `samconfig` Datei)
<a name="using-sam-cli-configure-create"></a>

Die AWS SAMCLI Konfigurationsdatei (Dateiname`samconfig`) ist eine Textdatei, die normalerweise die TOML-Struktur verwendet, aber auch in YAML sein kann. Wenn Sie eine AWS Schnellstartvorlage verwenden, wird diese Datei erstellt, wenn Sie den **sam init** Befehl ausführen. Sie können diese Datei aktualisieren, wenn Sie eine Anwendung mithilfe des **sam deploy -\$1-guided** Befehls bereitstellen.

Nach Abschluss der Bereitstellung enthält die `samconfig` Datei ein Profil mit dem Namen, `default` ob Sie die Standardwerte verwendet haben. Wenn Sie den **deploy** Befehl erneut ausführen, werden AWS SAM die gespeicherten Konfigurationseinstellungen aus diesem Profil übernommen.

Der Vorteil der `samconfig` Datei besteht darin, dass sie die Konfigurationseinstellungen für alle anderen Befehle AWS SAM speichert, die zusätzlich zum Befehl deploy verfügbar sind. Neben diesen Werten, die bei einer neuen Bereitstellung erstellt werden, gibt es eine Reihe von Attributen, die Sie in der `samconfig` Datei festlegen können, um andere Aspekte des Entwickler-Workflows zu vereinfachen AWS SAMCLI.

## Konfigurieren Sie die Projekteinstellungen
<a name="using-sam-cli-configure-project"></a>

Sie können projektspezifische Einstellungen, wie z. B. AWS SAMCLI Befehlsparameterwerte, in einer Konfigurationsdatei angeben, um sie mit dem zu verwenden. AWS SAMCLI Weitere Informationen zu dieser Konfigurationsdatei finden Sie unter. [AWS SAMCLIKonfigurationsdatei](serverless-sam-cli-config.md)

### Verwenden von Konfigurationsdateien
<a name="using-sam-cli-configure-project-using"></a>

Konfigurationsdateien sind nach Umgebung, Befehl und Parameterwert strukturiert. Weitere Informationen finden Sie unter [Grundlagen der Konfigurationsdatei](serverless-sam-cli-config.md#serverless-sam-cli-config-basics).

**Um eine neue Umgebung zu konfigurieren**

1. Geben Sie Ihre neue Umgebung in Ihrer Konfigurationsdatei an.

   Im Folgenden finden Sie ein Beispiel für die Angabe einer neuen `prod` Umgebung:

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   ```

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

   ```
   prod:
     global:
       parameters:
   ```

------

1. Geben Sie Parameterwerte als Schlüssel-Wert-Paare im Parameterbereich der Konfigurationsdatei an.

   Im Folgenden finden Sie ein Beispiel für die Angabe des Stack-Namens Ihrer Anwendung für die `prod` Umgebung.

------
#### [ TOML ]

   ```
   [prod.global.parameters]
   stack_name = "prod-app"
   ```

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

   ```
   prod:
     global:
       parameters:
         stack_name: prod-app
   ```

------

1. Verwenden Sie die `--config-env` Option, um die zu verwendende Umgebung anzugeben.

   Im Folgenden wird ein Beispiel gezeigt:

   ```
   $ sam deploy --config-env "prod"
   ```

**Um Parameterwerte zu konfigurieren**

1. Geben Sie den AWS SAMCLI Befehl an, für den Sie Parameterwerte konfigurieren möchten. Verwenden Sie den `global` Bezeichner, um Parameterwerte für alle AWS SAMCLI Befehle zu konfigurieren.

   Im Folgenden finden Sie ein Beispiel für die Angabe von Parameterwerten für den `sam deploy` Befehl der `default` Umgebung:

------
#### [ TOML ]

   ```
   [default.deploy.parameters]
   confirm_changeset = true
   ```

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

   ```
   default:
     deploy:
       parameters:
         confirm_changeset: true
   ```

------

   Das Folgende ist ein Beispiel für die Angabe von Parameterwerten für alle AWS SAMCLI Befehle in der `default` Umgebung:

------
#### [ TOML ]

   ```
   [default.global.parameters]
   stack_name = "sam-app"
   ```

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

   ```
   default:
     global:
       parameters:
         stack_name: sam-app
   ```

------

1. Sie können auch Parameterwerte angeben und Ihre Konfigurationsdatei über den AWS SAMCLI interaktiven Ablauf ändern.

   Im Folgenden finden Sie ein Beispiel für den `sam deploy --guided` interaktiven Ablauf:

   ```
   $ sam deploy --guided
   
   Configuring SAM deploy
   ======================
   
       Looking for config file [samconfig.toml] :  Found
       Reading default arguments  :  Success
   
       Setting default arguments for 'sam deploy'
       =========================================
       Stack Name [sam-app]: ENTER
       AWS Region [us-west-2]: ENTER
       #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
       Confirm changes before deploy [Y/n]: n
       #SAM needs permission to be able to create roles to connect to the resources in your template
       Allow SAM CLI IAM role creation [Y/n]: ENTER
       #Preserves the state of previously provisioned resources when an operation fails
       Disable rollback [y/N]: ENTER
       HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: y
       Save arguments to configuration file [Y/n]: ENTER
       SAM configuration file [samconfig.toml]: ENTER
       SAM configuration environment [default]: ENTER
   ```

Weitere Informationen finden Sie unter [Konfigurationsdateien erstellen und ändern](serverless-sam-cli-config.md#serverless-sam-cli-config-using).

### Beispiele
<a name="using-sam-cli-configure-project-examples"></a>

#### Einfaches TOML Beispiel
<a name="using-sam-cli-configure-project-examples-toml"></a>

Das Folgende ist ein Beispiel für eine `samconfig.toml` Konfigurationsdatei:

```
...
version = 0.1

[default]
[default.global]
[default.global.parameters]
stack_name = "sam-app"

[default.build.parameters]
cached = true
parallel = true

[default.deploy.parameters]
capabilities = "CAPABILITY_IAM"
confirm_changeset = true
resolve_s3 = true

[default.sync.parameters]
watch = true

[default.local_start_api.parameters]
warm_containers = "EAGER"

[prod]
[prod.sync]
[prod.sync.parameters]
watch = false
```

#### Einfaches YAML Beispiel
<a name="using-sam-cli-configure-project-examples-yaml"></a>

Das Folgende ist ein Beispiel für eine `samconfig.yaml` Konfigurationsdatei:

```
version 0.1
default:
  global:
    parameters:
      stack_name: sam-app
  build:
    parameters:
      cached: true
      parallel: true
  deploy:
    parameters:
      capabilities: CAPABILITY_IAM
      confirm_changeset: true
      resolve_s3: true
  sync:
    parameters:
      watch: true
  local_start_api:
    parameters:
      warm_containers: EAGER
prod:
  sync:
    parameters:
      watch: false
```

## Konfigurieren Sie Anmeldeinformationen und Grundeinstellungen
<a name="using-sam-cli-configure-basic"></a>

Verwenden Sie AWS Command Line Interface (AWS CLI), um grundlegende Einstellungen wie AWS Anmeldeinformationen, den Namen der Standardregion und das Standardausgabeformat zu konfigurieren. Nach der Konfiguration können Sie diese Einstellungen mit dem verwenden AWS SAMCLI. Weitere Informationen finden Sie im *AWS Command Line Interface Benutzerhandbuch* im Folgenden:
+ [Grundlagen der Konfiguration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Einstellungen für die Konfiguration und die Anmeldeinformationsdatei](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ [Benannte Profile für AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ [Verwendung eines für IAM Identity Center aktivierten benannten Profils](https://docs.aws.amazon.com/cli/latest/userguide/sso-using-profile.html)

Anweisungen zur schnellen Einrichtung finden Sie unter[Schritt 5: Verwenden Sie die AWS CLI , um die AWS Anmeldeinformationen zu konfigurieren](prerequisites.md#prerequisites-configure-credentials).

# AWS SAMCLIKernbefehle
<a name="using-sam-cli-corecommands"></a>

AWS SAMCLIenthält einige grundlegende Befehle, die Sie zum Erstellen, Erstellen, Testen, Bereitstellen und Synchronisieren Ihrer serverlosen Anwendung verwenden. Die folgende Tabelle listet diese Befehle auf und enthält Links mit weiteren Informationen zu den einzelnen Befehlen.

Eine vollständige Liste der AWS SAMCLI Befehle finden Sie unter[AWS SAMCLIBefehlsreferenz](serverless-sam-cli-command-reference.md).


| Befehl | Was es tut | Verwandte Themen | 
| --- | --- | --- | 
| **sam build** | Bereitet eine Anwendung für nachfolgende Schritte im Entwickler-Workflow vor, z. B. lokales Testen oder Bereitstellen in der AWS Cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam deploy** | Stellt eine Anwendung in der AWS Cloud bereit unter Verwendung von CloudFormation. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam init** | Bietet Optionen zum Initialisieren und Erstellen einer neuen serverlosen Anwendung. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam local** | Stellt Unterbefehle bereit, um Ihre serverlosen Anwendungen lokal zu testen. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote invoke** | Bietet eine Möglichkeit, mit unterstützten AWS Ressourcen in der AWS Cloud zu interagieren. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam remote test-event** | Bietet eine Möglichkeit, auf gemeinsam nutzbare Testereignisse für Ihre AWS Lambda-Funktionen zuzugreifen und diese zu verwalten. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 
| **sam sync** | Bietet Optionen zum schnellen Synchronisieren lokaler Anwendungsänderungen mit der AWS Cloud. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/serverless-application-model/latest/developerguide/using-sam-cli-corecommands.html)  | 

# Lokales Testen mit AWS SAMCLI
<a name="using-sam-cli-local-testing"></a>

Das AWS SAMCLI ermöglicht es Ihnen, serverlose Anwendungen lokal in verschiedenen Infrastructure-as-Code-Tools (IaC) zu testen. In diesem Handbuch wird erklärt, wie Sie das AWS SAMCLI für lokale Tests mit verschiedenen IaC-Frameworks verwenden.

Zu den wichtigsten Vorteilen der Verwendung AWS SAMCLI für lokale Tests gehören:
+ **Schnelle Entwicklung** — Testen Sie Codeänderungen ohne Bereitstellung auf AWS
+ **Kosteneffizienz** — Entwickeln und testen, ohne dass Gebühren anfallen AWS 
+ **Offline-Fähigkeit** — Arbeiten Sie an Ihren Anwendungen ohne Internetverbindung
+ **Vereinfachtes Debuggen** — Gehen Sie den Lambda-Funktionscode lokal mit einem Debugger durch
+ **Realistisches Testen — Testen** Sie Ihre Anwendungen mithilfe der lokalen Emulation von Diensten AWS 

## Testen Sie AWS SAM Anwendungen lokal
<a name="using-sam-cli-local-testing-sam"></a>

Informationen zum Testen von Anwendungen, die mithilfe von AWS SAM Vorlagen definiert wurden, finden Sie unter [Serverlose Anwendungen testen und debuggen](serverless-test-and-debug.md) in diesem Handbuch.

## Testen Sie Vorlagen lokal CloudFormation
<a name="using-sam-cli-local-testing-cfn"></a>

Um die lokalen Testfunktionen AWS SAMCLI von zu verwenden CloudFormation, fügen Sie die AWS SAM Transformation zu Ihrer CloudFormation Vorlage hinzu. Weitere Informationen finden Sie unter [Anatomie der AWS SAM Vorlage](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy.html) für:
+  AWS SAM Transformation zu CloudFormation Vorlagen hinzufügen
+ Grundlegendes zur Kompatibilität von Vorlagen
+ Erkunden Sie die Syntax serverloser Ressourcen

## Testen Sie AWS CDK-Anwendungen lokal
<a name="using-sam-cli-local-testing-cdk"></a>

Sie können den verwenden AWS SAMCLI, um AWS CDK-Anwendungen lokal zu testen, nachdem Sie die CDK-Anwendung mit dem Befehl AWS cdk synth zu CloudFormation Vorlagen synthetisiert haben.

Weitere Informationen finden Sie im [CDK-Entwicklerhandbuch unter Lokales Testen und Erstellen von AWS CDK-Anwendungen mit dem AWS SAMCLI](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html). AWS Dies umfasst:
+ [Erste Schritte mit lokalem Testen](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-getting-started)
+ [Lokales Testen von AWS CDK-Anwendungen mit AWS SAM](https://docs.aws.amazon.com/cdk/v2/guide/testing-locally.html#testing-locally-sam)

## Testen Sie Terraform-Anwendungen lokal
<a name="using-sam-cli-local-testing-terraform"></a>

Das AWS SAMCLI unterstützt Terraform-Projekte und Terraform Cloud. Sie können es verwenden, um lokales Debuggen und Testen von: Lambda-Funktionen und -Layern sowie dem Amazon API Gateway HTTP und REST durchzuführen. APIs

Informationen zur Einrichtung Ihrer Umgebung und zu allen verfügbaren Funktionen finden Sie unter [Terraform-Support](terraform-support.md) in diesem Handbuch. Dies umfasst:
+ [Erste Schritte mit der Terraform-Unterstützung für AWS SAMCLI](gs-terraform-support.md)
+ [Verwendung von AWS SAMCLI mit Terraform zum lokalen Debuggen und Testen](using-samcli-terraform.md)