AWS SAM CLI配置文件 - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS SAM CLI配置文件

的 AWS SAM CLI支持存储其命令的默认参数的项目级配置文件。此配置文件位于 TOML文件格式. 默认文件名为 samconfig.toml,并且文件的默认位置是项目的根目录,即包含项目 AWS SAM 模板文件。

您可以手动编辑此文件以设置任何 AWS SAM CLI命令。

此外, sam deploy --guided 命令将参数子集写入您的配置文件。有关此功能的更多详细信息,请参阅 正在写入配置 sam deploy --guided 本主题的后面部分。

Example

以下是一个示例配置文件,其中包含以下七个参数: default 环境和 deploy 命令:

 
 version=0.1
 [default.deploy.parameters]
 stack_name = "my-app-stack"
 s3_bucket = "my-source-bucket"
 s3_prefix = "my-s3-prefix"
 region = "us-west-2"
 confirm_changeset = true
 capabilities = "CAPABILITY_IAM"
 tags = "project=\"my-application\" stage=\"production\""
        

配置文件规则

配置文件位于 TOML文件格式. 的 AWS SAM CLI将以下规则应用于配置文件:

文件名和位置

  • 默认配置文件已命名 samconfig.toml 位于项目的根目录。

  • 您可以使用 --config-file 参数。

Tables

  • 的 AWS SAM CLI使用TOML表按环境和命令对配置条目进行分组。

  • 表标题的格式为 [environment.command.parameters]。例如,对于 sam deploy 命令,配置表标题为 [default.deploy.parameters].

  • 对于子命令,表标题的格式为 [environment.command_subcommand.parameters]。例如,对于 sam local invoke 命令,配置表标题为 [default.local_invoke.parameters].

  • 默认的环境名称为 default。您可以使用 --config-env 参数。

  • 单个配置文件可以包含多个环境和多个命令/子命令的表。

配置条目

  • 每个配置条目都是一个TOML密钥值对。

  • 配置键是带有 - (连字符)字符替换为 _ (下划线)。有关每个命令的可用参数列表,请参阅 AWS SAM CLI命令参考,或运行 sam command --help.

  • 配置值可以采用以下形式:

    1. 对于需要引数的参数,条目值是双引号包围的参数。例如:region = "us-west-2"

      • 对于键值对的参数,对是空间分隔的,并且每一对的值由编码的双引号包围。例如:tags = "project=\"my-application\" stage=\"production\""

    2. 对于切换参数,值可以 truefalse (无引号)。例如:confirm_changeset = true

Precedence

  • 您在命令行中提供的参数值优先于配置文件中的相应条目。例如,如果您的配置文件包含 stack_name = "DefaultStack" 然后运行命令 sam deploy --stack-name MyCustomStack,则部署的堆栈名称为 MyCustomStack.

  • 对于 parameter_overrides 条目,您在命令行中提供的参数值和配置文件中的条目都优先于在中声明的相应对象 Parameters 模板文件的部分。

正在写入配置 sam deploy --guided

当您运行 sam deploy --guided 命令, AWS SAM CLI通过一系列提示指导您完成部署。

这些提示包括问题 "Save arguments to samconfig.toml [Y/n]:"。如果你回答 Y 到这个提示, AWS SAM CLI使用以下参数的值更新配置文件:

  • stack_name

  • s3_bucket

  • s3_prefix

  • region

  • config_changeset

  • capabilities

  • parameter_overrides

如果您之前已编写配置文件,则 AWS SAM CLI读取它并将这些参数值用作相应提示的默认值。如果在命令行中为这些参数中的任何参数指定值, AWS SAM CLI使用这些值作为默认值。

要设置之前列出的参数以外的任何参数,您必须手动编辑配置文件。