

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 SAMCLIKonfigurationsdatei
<a name="serverless-sam-cli-config"></a>

Die AWS Serverless Application Model Befehlszeilenschnittstelle (AWS SAMCLI) unterstützt eine Konfigurationsdatei auf Projektebene, mit der Sie AWS SAMCLI Befehlsparameterwerte konfigurieren können.

Eine Dokumentation zum Erstellen und Verwenden von Konfigurationsdateien finden Sie unter. [Konfiguration der AWS SAMCLI](using-sam-cli-configure.md)

**Topics**
+ [

## Standardeinstellungen für die Konfigurationsdatei
](#serverless-sam-cli-config-default)
+ [

## Unterstützte Konfigurationsdateiformate
](#serverless-sam-cli-config-formats)
+ [

## Geben Sie eine Konfigurationsdatei an
](#serverless-sam-cli-config-specify)
+ [

## Grundlagen der Konfigurationsdatei
](#serverless-sam-cli-config-basics)
+ [

## Regeln für Parameterwerte
](#serverless-sam-cli-config-rules)
+ [

## Rangfolge der Konfiguration
](#serverless-sam-cli-config-precedence)
+ [

## Konfigurationsdateien erstellen und ändern
](#serverless-sam-cli-config-using)

## Standardeinstellungen für die Konfigurationsdatei
<a name="serverless-sam-cli-config-default"></a>

AWS SAM verwendet die folgenden Standardeinstellungen für die Konfigurationsdatei:
+ **Name (Name** – `samconfig`.
+ **Standort** — Im Stammverzeichnis Ihres Projekts. Dies ist derselbe Speicherort wie Ihre `template.yaml` Datei.
+ **Format** —`TOML`. Weitere Informationen finden Sie unter [TOML](https://toml.io/en/) in der *TOMLDokumentation*.

Im Folgenden finden Sie ein Beispiel für eine Projektstruktur, die den Namen und den Speicherort der Standardkonfigurationsdatei enthält:

```
sam-app
├── README.md
├── __init__.py
├── events
├── hello_world
├── samconfig.toml
├── template.yaml
└── tests
```

Im Folgenden sehen Sie ein Beispiel für eine `samconfig.toml`-Datei:

```
...
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
```

## Unterstützte Konfigurationsdateiformate
<a name="serverless-sam-cli-config-formats"></a>

`TOML`und `[YAML|YML]` Formate werden unterstützt. Sehen Sie sich die folgende grundlegende Syntax an:

### TOML
<a name="serverless-sam-cli-config-formats-toml"></a>

```
version = 0.1
[environment]
[environment.command]
[environment.command.parameters]
option = parameter value
```

### YAML
<a name="serverless-sam-cli-config-formats-yaml"></a>

```
version: 0.1
environment:
  command:
    parameters:
      option: parameter value
```

## Geben Sie eine Konfigurationsdatei an
<a name="serverless-sam-cli-config-specify"></a>

Standardmäßig AWS SAMCLI sucht der in der folgenden Reihenfolge nach einer Konfigurationsdatei:

1. **Benutzerdefinierte Konfigurationsdatei** — Wenn Sie die `--config-file` Option zur Angabe eines Dateinamens und eines Speicherorts verwenden, AWS SAMCLI sucht der zuerst nach dieser Datei.

1. **`samconfig.toml`Standarddatei** — Dies ist der Standardname und das Standardformat der Konfigurationsdatei, die sich im Stammverzeichnis Ihres Projekts befinden. Wenn Sie keine benutzerdefinierte Konfigurationsdatei angeben, AWS SAMCLI sucht der als Nächstes nach dieser Datei.

1. **`samconfig.[yaml|yml]`Datei** — Wenn die `samconfig.toml` nicht im Stammverzeichnis Ihres Projekts existiert, AWS SAMCLI sucht der nach dieser Datei.

Im Folgenden finden Sie ein Beispiel für die Angabe einer benutzerdefinierten Konfigurationsdatei mithilfe der `--config-file` Option:

```
$ sam deploy --config-file myconfig.yaml
```

**Anmerkung**  
Der `--config-file` Parameter muss sich auf den Speicherort der AWS SAM Vorlagendatei beziehen, da er den Kontext bestimmen AWS SAMCLI muss, in dem die Konfiguration angewendet wird. Die `samconfig.toml` Datei verwaltet die Konfigurationseinstellungen für Ihre Version von AWS SAMCLI, und die CLI sucht nach der `samconfig.toml` Datei (oder dem überschriebenen Konfigurationsdateiparameter) im entsprechenden Ordner der `template.yaml` Datei.

## Grundlagen der Konfigurationsdatei
<a name="serverless-sam-cli-config-basics"></a>

### Umgebung
<a name="serverless-sam-cli-config-basics-environment"></a>

Eine **Umgebung** ist ein benannter Bezeichner, der einen eindeutigen Satz von Konfigurationseinstellungen enthält. Sie können mehrere Umgebungen in einer einzigen AWS SAM Anwendung haben.

Der Standardumgebungsname lautet`default`.

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

### Befehl
<a name="serverless-sam-cli-config-basics-command"></a>

Der **Befehl** ist der AWS SAMCLI Befehl, für den Parameterwerte angegeben werden.

Verwenden Sie den `global` Bezeichner, um Parameterwerte für alle Befehle anzugeben.

Wenn Sie auf einen AWS SAMCLI Befehl verweisen, ersetzen Sie Leerzeichen (` `) und Bindestriche () durch Unterstriche (`–`). `_` Im Folgenden sind einige Beispiele aufgeführt:
+ `build`
+ `local_invoke`
+ `local_start_api`

### Parameters
<a name="serverless-sam-cli-config-basics-parameters"></a>

**Parameter** werden als Schlüssel-Wert-Paare angegeben.
+ Der **Schlüssel** ist der Name der AWS SAMCLI Befehlsoption.
+ Der **Wert** ist der anzugebende Wert.

Verwenden Sie bei der Angabe von Schlüsseln den Namen der Befehlsoption in Langform und ersetzen Sie Bindestriche () durch Unterstriche (`–`). `_` Im Folgenden sind einige Beispiele aufgeführt:
+ `region`
+ `stack_name`
+ `template_file`

## Regeln für Parameterwerte
<a name="serverless-sam-cli-config-rules"></a>

### TOML
<a name="serverless-sam-cli-config-rules-toml"></a>
+ Boolesche Werte können oder sein. `true` `false` Beispiel, `confirm_changeset = true`.
+ Verwenden Sie für Zeichenkettenwerte Anführungszeichen ()`""`. Beispiel, `region = "us-west-2"`.
+ Verwenden Sie für Listenwerte Anführungszeichen (`""`) und trennen Sie die einzelnen Werte durch ein Leerzeichen (` `). Beispiel: `capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"`.
+ Bei Werten, die eine Liste von Schlüssel-Wert-Paaren enthalten, sind die Paare durch Leerzeichen getrennt (` `), und der Wert jedes Paares ist von codierten Anführungszeichen () umgeben. `\" \"` Beispiel, `tags = "project=\"my-application\" stage=\"production\""`.
+ Bei Parameterwerten, die mehrfach angegeben werden können, ist der Wert ein Array von Argumenten. Beispiel: `image_repositories = ["my-function-1=image-repo-1", "my-function-2=image-repo-2"]`.

### YAML
<a name="serverless-sam-cli-config-rules-yaml"></a>
+ Boolesche Werte können oder sein. `true` `false` Beispiel, `confirm_changeset: true`.
+ Bei Einträgen, die einen einzelnen Zeichenkettenwert enthalten, sind Anführungszeichen (`""`) optional. Beispiel, `region: us-west-2`. Dazu gehören Einträge, die mehrere Schlüssel-Wert-Paare enthalten, die als einzelne Zeichenfolge bereitgestellt werden. Im Folgenden wird ein Beispiel gezeigt:

  ```
  $ sam deploy --tags "foo=bar hello=world"
  ```

  ```
  default:
    deploy:
      parameters:
        tags: foo=bar hello=world
  ```
+ Bei Einträgen, die eine Werteliste enthalten, oder bei Einträgen, die mehrfach in einem einzigen Befehl verwendet werden können, geben Sie sie als Liste von Zeichenfolgen an.

  Im Folgenden wird ein Beispiel gezeigt:

  ```
  $ sam remote invoke --parameter "InvocationType=Event" --parameter "LogType=None"
  ```

  ```
  default:
    remote_invoke:
      parameters:
          parameter:
          - InvocationType=Event
          - LogType=None
  ```

## Rangfolge der Konfiguration
<a name="serverless-sam-cli-config-precedence"></a>

Bei der Konfiguration von Werten gilt die folgende Priorität:
+ Parameterwerte, die Sie in der Befehlszeile angeben, haben Vorrang vor den entsprechenden Werten in der Konfigurationsdatei und im `Parameters` Abschnitt der Vorlagendatei.
+ Wenn die `--parameter-overrides` Option in der Befehlszeile oder in Ihrer Konfigurationsdatei zusammen mit dem `parameter_overrides` Schlüssel verwendet wird, haben ihre Werte Vorrang vor Werten im `Parameters` Abschnitt der Vorlagendatei.
+ In Ihrer Konfigurationsdatei haben die für einen bestimmten Befehl bereitgestellten Einträge Vorrang vor globalen Einträgen. Im folgenden Beispiel verwendet der `sam deploy` Befehl den Stack-Namen`my-app-stack`.

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

  ```
  [default.global.parameters]
  stack_name = "common-stack"
  
  [default.deploy.parameters]
  stack_name = "my-app-stack"
  ```

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

  ```
  default:
    global:
      parameters:
        stack_name: common-stack
    deploy:
      parameters:
        stack_name: my-app-stack
  ```

------

## Konfigurationsdateien erstellen und ändern
<a name="serverless-sam-cli-config-using"></a>

### Konfigurationsdateien erstellen
<a name="serverless-sam-cli-config-using-create"></a>

Wenn Sie eine Anwendung mit erstellen`sam init`, wird eine `samconfig.toml` Standarddatei erstellt. Sie können Ihre Konfigurationsdatei auch manuell erstellen.

### Konfigurationsdateien ändern
<a name="serverless-sam-cli-config-using-modify"></a>

Sie können Ihre Konfigurationsdateien manuell ändern. Außerdem werden die konfigurierten Werte während eines AWS SAMCLI interaktiven Ablaufs in Klammern (`[ ]`) angezeigt. Wenn Sie diese Werte ändern, AWS SAMCLI wird Ihre Konfigurationsdatei aktualisiert.

Im Folgenden finden Sie ein Beispiel für einen interaktiven Ablauf mit dem `sam deploy --guided` Befehl:

```
$ 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
```

Wenn Sie Ihre Konfigurationsdatei ändern, AWS SAMCLI behandelt der globale Werte wie folgt:
+ Wenn der Parameterwert im `global` Abschnitt Ihrer Konfigurationsdatei vorhanden ist, wird der Wert AWS SAMCLI nicht in den spezifischen Befehlsabschnitt geschrieben.
+ Wenn der Parameterwert `global` sowohl im Befehlsabschnitt als auch in einem bestimmten Befehlsabschnitt vorhanden ist, AWS SAMCLI wird der spezifische Eintrag zugunsten des globalen Werts gelöscht.