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

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

配置 Amazon SAM CLI

Amazon SAM 的好处之一是,它通过移除重复的任务来优化开发人员的时间。Amazon SAM CLI 为此目的包含一个名为 samconfig 的配置文件。默认情况下,不需要对 Amazon SAM CLI 进行任何配置,但您可以更新配置文件,通过允许 Amazon SAM 在配置文件中引用您的自定义参数,您可以运行具有更少参数的命令。下表中的示例显示了如何优化命令:

原始

使用 samconfig 进行优化

sam build --cached --parallel --use-containers

sam build

sam local invoke --env-vars locals.json

sam local invoke

sam local start-api --env-vars locals.json --warm-containers EAGER

sam local start-api

Amazon SAM CLI 提供了一组命令来帮助开发人员创建、开发和部署无服务器应用程序。其中每个命令都可以根据应用程序和开发人员的偏好使用可选标志进行配置。有关更多信息,请参阅 GitHub 中的 Amazon SAMCLI 内容

本节中的主题介绍如何创建 Amazon SAM CLI 配置文件 和自定义默认设置,以优化无服务器应用程序的开发时间。

如何创建配置文件(samconfig 文件)

Amazon SAM CLI 配置文件(文件名 samconfig)是一个文本文件,通常使用 TOML 结构,但也可以采用 YAML。使用 Amazon 快速入门模板时,此文件是在您运行 sam init 命令时创建的。使用 sam deploy -\-guided 命令部署应用程序时,可以更新此文件。

部署完成后,如果使用默认值,则 samconfig 文件将包含一个名为 default 的配置文件。重新运行 deploy 命令时,Amazon SAM 会应用此配置文件中存储的配置设置。

samconfig 文件的好处是,Amazon SAM 还存储了除了 deploy 命令之外的任何其他可用命令的配置设置。除了在新部署时创建的这些值外,您还可以在 samconfig 文件中设置许多属性,这些属性可以使用 Amazon SAM CLI 简化开发人员工作流的其他方面。

配置项目设置

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

使用配置文件

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

配置新环境
  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

配置凭证和基本设置

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

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