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

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

AWS SAM CLI 配置文件

CLI 支持一个项目级别配置文件,该文件存储其命令的默认参数。AWS SAM此配置文件采用 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\""
        

配置文件规则

CLI 将以下规则应用于配置文件:AWS SAM

文件名和位置

  • 默认配置文件名为 samconfig.toml 且位于项目的根目录中。

  • 您可以使用 --config-file 参数覆盖默认文件名和位置。

Tables

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

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

  • 对于子命令,表标头的格式为 [environment.command_subcommand.parameters]。 也就是说,使用 _ (下划线) 分隔命令和子命令。例如,对于 sam local invoke 命令,配置表标头为 [default.local_invoke.parameters]

  • 如果任何命令或子命令包含 -(连字符)字符,请将其替换为 _(下划线)。例如,对于 sam local start-api 命令,配置表标头为 [default.local_start_api.parameters]

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

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

配置条目

  • 每个配置条目均为一个 TOML 键/值对。

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

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

    • 对于接受参数的参数,条目值是用双引号括起的参数。例如:region = "us-west-2"

      • 对于多个参数,参数用双引号分隔。例如:capabilities = "CAPABILITY_IAM CAPABILITY_NAMED_IAM"

      • 对于作为键值对的参数,这些对使用空格分隔,并且每对的值使用编码的双引号括起来。例如:tags = "project=\"my-application\" stage=\"production\""

    • 对于切换参数,值可以是 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

  • image_repository

  • region

  • confirm_changeset

  • capabilities

  • signing_profiles

  • parameter_overrides

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

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