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

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

配置 Amazon SAM CLI

为 Amazon Serverless Application Model 命令行界面 (Amazon SAM CLI) 配置凭证、基本设置和项目设置。

配置凭证和基本设置

使用 Amazon Command Line Interface (Amazon CLI) 配置基本设置,例如 Amazon 凭证、默认区域名称和默认输出格式。配置完成后,您可以将这些设置与 Amazon SAM CLI 结合使用。要了解更多信息,请参阅《Amazon Command Line Interface 用户指南》中的以下主题:

有关快速设置说明,请参阅第 5 步:使用 Amazon CLI 配置 Amazon 凭证

配置项目设置

您可以在配置文件中指定项目特定的设置(例如 Amazon SAM CLI 命令参数值),以便与 Amazon SAM CLI 结合使用。有关此配置文件的更多信息,请参阅Amazon SAMCLI 配置文件

使用配置文件

配置文件由环境、命令和参数值构成。有关更多信息,请参阅 配置文件基础

配置新环境
  1. 在配置文件中指定新环境。

    在以下示例中,指定了新的 prod 环境:

    TOML
    [prod.global.parameters]
    YAML
    prod: global: parameters:
  2. 在配置文件的参数部分将参数值指定为键值对。

    在以下示例中,为 prod 环境指定了应用程序的堆栈名称。

    TOML
    [prod.global.parameters]
    stack_name = "prod-app"
    YAML
    prod: global: parameters: stack_name: prod-app
  3. 使用 --config-env 选项指定要使用的环境。

    以下是 示例:

    $ sam deploy --config-env "prod"
配置参数值
  1. 指定要为其配置参数值的 Amazon SAM CLI 命令。要为所有 Amazon SAM CLI 命令配置参数值,请使用 global 标识符。

    在以下示例中,为 default 环境的 sam deploy 命令指定了参数值:

    TOML
    [default.deploy.parameters]
    confirm_changeset = true
    YAML
    default: deploy: parameters: confirm_changeset: true

    在以下示例中,为 default 环境中的所有 Amazon SAM CLI 命令指定了参数值:

    TOML
    [default.global.parameters]
    stack_name = "sam-app"
    YAML
    default: global: parameters: stack_name: sam-app
  2. 您还可以通过 Amazon SAM CLI 交互式流程指定参数值并修改配置文件。

    以下是 sam deploy --guided 交互式流程的示例:

    $ 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

有关更多信息,请参阅 创建和修改配置文件

示例

基本TOML示例

下面是samconfig.toml配置文件的示例:

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

基本YAML示例

下面是samconfig.yaml配置文件的示例:

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