sam deploy - AWS Serverless Application Model

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

sam deploy

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) sam deploy 命令的参考信息。

sam deploy命令向用户部署应用程序。 AWS Cloud AWS CloudFormation

使用量

$ <environment variables> sam deploy <options>

环境变量

SAM_CLI_POLL_DELAY

SAM_CLI_POLL_DELAY环境变量的值设置为秒,以配置 AWS SAM CLI 检查 AWS CloudFormation 堆栈状态的频率,这在查看来自的限制时很有用。 AWS CloudFormation此 env 变量用于轮询 describe_stack API 调用,这些调用是在运行sam deploy时进行的。

以下是此变量的示例:

$ SAM_CLI_POLL_DELAY=5 sam deploy

Options

--capabilities LIST

必须指定才能创建特定堆栈 AWS CloudFormation 的功能列表。某些堆栈模板可能包含影响您权限的资源 AWS 账户,例如,通过创建新 AWS Identity and Access Management (IAM) 用户来影响您的权限。对于这些堆栈,您必须通过指定此选项来明确确认它们的功能。有效值仅为 CAPABILITY_IAMCAPABILITY_NAMED_IAM。如果有 IAM 资源,则您可以指定任意一个功能。如果有具有自定义名称的 IAM 资源,则必须指定 CAPABILITY_NAMED_IAM。如果不指定此选项,则操作会返回 InsufficientCapabilities 错误。

--config-env TEXT

在配置文件中指定要使用的默认参数值的环境名称。默认值为 default。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

--config-file PATH

包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为 samconfig.toml。有关配置文件的详细信息,请参阅 AWS SAMCLI 配置文件

--confirm-changeset | --no-confirm-changeset

提示您确认 AWS SAM CLI 是否部署了计算的变更集。

--debug

启用调试日志记录,以打印 AWS SAM CLI 生成的调试消息并显示时间戳。

--disable-rollback | --no-disable-rollback

指定在部署期间发生错误时是否回滚 AWS CloudFormation 堆栈。默认情况下,如果部署期间出现错误,您的 AWS CloudFormation 堆栈会回滚到上一个稳定状态。如果指定 --disable-rollback,当部署期间出现错误时,则在错误出现之前创建或更新的资源不会回滚。

--fail-on-empty-changeset | --no-fail-on-empty-changeset

指定在未对堆栈进行任何更改时是否要返回非零退出代码。默认行为是返回非零退出代码。

--force-upload

指定此选项可上传构件,即使要上传的构件与 Amazon S3 存储桶中的现有构件匹配。匹配的构件会被覆盖。

--guided, -g

指定此选项后, AWS SAM CLI 就会使用提示来指导您完成部署。

--help

显示此消息并退出。

--image-repositories TEXT

函数与其 Amazon ECR 存储库 URI 之间的映射。通过逻辑 ID 引用函数。以下是 示例:

$ sam deploy --image-repositories Function1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo

您可以在单个命令中多次指定此选项。

--image-repository TEXT

此命令用于上传函数映像的 Amazon ECR 存储库的名称。对于使用 Image 包类型声明的函数,必须使用此选项。

--kms-key-id TEXT

AWS Key Management Service (AWS KMS) 密钥的 ID,用于对 Amazon S3 存储桶中的静态项目进行加密。如果您未指定此选项,则 AWS SAM 使用 Amazon S3 托管的加密密钥。

--metadata

要附加到模板中引用的所有构件的元数据的映射。

--no-execute-changeset

指示是否要应用变更集。如果要在应用变更集之前查看堆栈更改,请指定此选项。此命令会创建 AWS CloudFormation 变更集,然后退出而不应用变更集。要应用变更集,请在不使用此选项的情况下运行同一命令。

--no-progressbar

将构件上传到 Amazon S3 时不显示进度条。

--notification-arns LIST

与堆栈关联的亚马逊简单通知服务 (Amazon SNS) Service 主题 ARN AWS CloudFormation 列表。

--on-failure [ROLLBACK | DELETE | DO_NOTHING]

指定堆栈创建失败时要采取的操作。

以下选项可用:

  • ROLLBACK - 将堆栈回滚到上一个已知良好状态。

  • DELETE - 将堆栈回滚到上一个已知良好状态(如果存在)。否则,删除堆栈。

  • DO_NOTHING - 既不回滚堆栈,也不删除堆栈。其效果与 --disable-rollback 相同。

默认行为是 ROLLBACK

注意

您可以指定 --disable-rollback 选项或 --on-failure 选项,但不能同时指定两者。

--parameter-overrides

包含编码为键值对的 AWS CloudFormation 参数覆盖的字符串。使用与 AWS Command Line Interface (AWS CLI) 相同的格式。例如,ParameterKey=ParameterValue InstanceType=t1.micro

--profile TEXT

您的凭证文件中用于获取 AWS 凭证的特定个人资料。

--region TEXT

AWS 区域 要部署到的。例如,us-east-1。

--resolve-image-repos

自动创建 Amazon ECR 存储库,用于打包和部署非指导式部署。此选项仅适用于指定了 PackageType: Image 的函数和层。如果指定 --guided 选项,则 AWS SAM CLI 会忽略 --resolve-image-repos

注意

如果使用此选项 AWS SAM 自动为函数或层创建任何 Amazon ECR 存储库,而您随后从 AWS SAM 模板中删除了这些函数或层,则相应的 Amazon ECR 存储库将被自动删除。

--resolve-s3

自动创建 Amazon S3 存储桶,用于打包和部署非指导式部署。如果指定 --guided 选项,则 AWS SAM CLI 会忽略 --resolve-s3。如果同时指定 --s3-bucket--resolve-s3 选项,则会出现错误。

--role-arn TEXT

应用变更集时 AWS CloudFormation 扮演的 IAM 角色的 Amazon 资源名称 (ARN)。

--s3-bucket TEXT

此命令用于上传您的 AWS CloudFormation 模板的 Amazon S3 存储桶的名称。如果模板大于 51,200 字节,则需要 --s3-bucket--resolve-s3 选项。如果同时指定 --s3-bucket--resolve-s3 选项,则会出现错误。

--s3-prefix TEXT

上传到 Amazon S3 存储桶的构件的名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。

--save-params

将您在命令行中提供的参数保存到 AWS SAM 配置文件中。

--signing-profiles LIST

用于签署部署包的签名配置文件的列表。此选项采用键值对列表,其中密钥是要签名的函数或层的名称,值是签名配置文件,可选的配置文件所有者用 : 分隔。例如,FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner

--stack-name TEXT

(必填)您要部署到的 AWS CloudFormation 堆栈的名称。如果指定现有堆栈,则该命令将更新堆栈。如果指定新堆栈,则该命令将创建它。

--tags LIST

要与已创建或更新的堆栈关联的标签列表。 AWS CloudFormation 还会将这些标签传播到堆栈中支持它的资源。

--template-file, --template, -t PATH

AWS SAM 模板所在的路径和文件名。

注意

如果指定此选项,则仅 AWS SAM 部署模板及其指向的本地资源。

--use-json

输出 AWS CloudFormation 模板的 JSON。默认输出为 YAML。