AWS SAM CLI Konfigurationsdatei - AWS Serverless Application Model

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 Konfigurationsdatei

Die AWS Serverless Application Model Befehlszeilenschnittstelle (AWS SAM CLI) unterstützt eine Konfigurationsdatei auf Projektebene, die Sie zur Konfiguration verwenden können AWS SAM CLI Werte von Befehlsparametern.

Eine Dokumentation zum Erstellen und Verwenden von Konfigurationsdateien finden Sie unterKonfiguration der AWS SAMCLI.

Standardeinstellungen für die Konfigurationsdatei

AWS SAM verwendet die folgenden Standardeinstellungen für die Konfigurationsdatei:

  • Name (Namesamconfig.

  • Standort — Im Stammverzeichnis Ihres Projekts. Dies ist derselbe Speicherort wie Ihre template.yaml Datei.

  • FormatTOML. Weitere Informationen finden Sie TOMLin der TOML Dokumentation.

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

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

TOML

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

YAML

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

Geben Sie eine Konfigurationsdatei an

Standardmäßig ist der AWS SAM CLI sucht in der folgenden Reihenfolge nach einer Konfigurationsdatei:

  1. Benutzerdefinierte Konfigurationsdatei — Wenn Sie die --config-file Option zur Angabe eines Dateinamens und eines Speicherorts verwenden, wird AWS SAM CLI sucht zuerst nach dieser Datei.

  2. samconfig.tomlStandarddatei — Dies ist der Name und das Format der Standardkonfigurationsdatei, die sich im Stammverzeichnis Ihres Projekts befinden. Wenn Sie keine benutzerdefinierte Konfigurationsdatei angeben, AWS SAM CLI sucht als Nächstes nach dieser Datei.

  3. samconfig.[yaml|yml]Datei — Wenn die samconfig.toml nicht im Stammverzeichnis Ihres Projekts existiert, AWS SAM CLI sucht 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 relativ zum Speicherort der AWS SAM Vorlagendatei sein, weil AWS SAM CLI muss den Kontext bestimmen, in dem die Konfiguration angewendet wird. Die samconfig.toml Datei verwaltet die Konfigurationseinstellungen für Ihre Version von AWS SAM CLI, und CLI sucht dann nach der samconfig.toml Datei (oder dem überschriebenen Konfigurationsdateiparameter) im entsprechenden Ordner der template.yaml Datei.

Grundlagen der Konfigurationsdatei

Umgebung

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

Verwenden Sie den AWS SAM CLI --config-envOption zur Angabe der zu verwendenden Umgebung.

Befehl

Der Befehl ist AWS SAM CLI Befehl zur Angabe von Parameterwerten für.

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

Beim Verweisen auf eine AWS SAM CLI Befehl, ersetzen Sie Leerzeichen ( ) und Bindestriche () durch Unterstriche (). _ Im Folgenden sind einige Beispiele aufgeführt:

  • build

  • local_invoke

  • local_start_api

Parameter

Parameter werden als Schlüssel-Wert-Paare angegeben.

  • Der Schlüssel ist AWS SAM CLI Name der 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

TOML

  • 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

  • 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: parameter: - InvocationType=Event - LogType=None

Priorität der Konfiguration

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-Namenmy-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

Konfigurationsdateien erstellen

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

Konfigurationsdateien ändern

Sie können Ihre Konfigurationsdateien manuell ändern. Auch während eines AWS SAM CLI Beim interaktiven Ablauf werden die konfigurierten Werte in Klammern ([ ]) angezeigt. Wenn Sie diese Werte ändern, AWS SAM CLI aktualisiert Ihre Konfigurationsdatei.

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 SAM CLI behandelt globale Werte wie folgt:

  • Wenn der Parameterwert im global Abschnitt Ihrer Konfigurationsdatei vorhanden ist, AWS SAM CLI schreibt den Wert nicht in den spezifischen Befehlsabschnitt.

  • Wenn der Parameterwert sowohl im Befehlsabschnitt als auch in einem bestimmten Befehlsabschnitt vorhanden ist, global AWS SAM CLI löscht den spezifischen Eintrag zugunsten des globalen Werts.