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

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

配置 Amazon SAM CLI

的好处之一 Amazon SAM 是,它通过删除重复的任务来优化开发人员的时间。 Amazon SAMCLI包括为此目的samconfig而命名的配置文件。默认情况下,不需要对 Amazon SAMCLI进行配置,但您可以更新配置文件,允许在配置文件中引用您的自定义参数, 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 SAMCLI提供了一组命令来帮助开发人员创建、开发和部署无服务器应用程序。这些命令中的每一个都可根据应用程序和开发者的偏好使用可选标志进行配置。有关更多信息,请参阅中的Amazon SAMCLI内容 GitHub

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

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

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

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

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

配置项目设置

您可以在配置文件中指定项目特定的设置,例如 Amazon SAMCLI命令参数值,以便与一起使用。 Amazon SAMCLI有关此配置文件的更多信息,请参阅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

配置凭证和基本设置

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

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