sam deploy
此页面提供了 Amazon Serverless Application Model 命令行界面(Amazon SAM CLI) sam deploy 命令的参考信息。
-
有关 Amazon SAM CLI 的简介,请参阅什么是 Amazon SAMCLI?
-
有关使用 Amazon SAM CLI
sam deploy命令的文档,请参阅使用 Amazon SAM 进行部署简介。
sam deploy 命令使用 Amazon CloudFormation 将应用程序部署到 Amazon Web Services 云。
使用量
$<environment variables>sam deploy<options>
环境变量
SAM_CLI_POLL_DELAY-
在 Shell 中将
SAM_CLI_POLL_DELAY环境变量设置为秒值,以配置 Amazon SAM CLI 检查 Amazon CloudFormation 堆栈状态的频率,这在查看来自 Amazon CloudFormation 的节流时很有用。此 env 变量用于轮询describe_stackAPI 调用,这些调用是在运行sam deploy时进行的。以下是此变量的示例:
$SAM_CLI_POLL_DELAY=5sam deploy
选项
--capabilitiesLIST-
为了使 Amazon CloudFormation 能够创建某些堆栈而必须指定的功能列表。一些堆栈模板可能包含影响您的 Amazon Web Services 账户 中权限的资源,例如,通过创建新的 Amazon Identity and Access Management (IAM) 用户。对于这些堆栈,您必须通过指定此选项来明确确认它们的功能。有效值仅为
CAPABILITY_IAM和CAPABILITY_NAMED_IAM。如果有 IAM 资源,则您可以指定任意一个功能。如果有具有自定义名称的 IAM 资源,则必须指定CAPABILITY_NAMED_IAM。如果不指定此选项,则操作会返回InsufficientCapabilities错误。部署包含嵌套应用程序的应用程序时,您必须使用
CAPABILITY_AUTO_EXPAND来确认此应用程序包含嵌套应用程序。有关更多信息,请参阅 部署嵌套应用程序。 --config-envTEXT-
在配置文件中指定要使用的默认参数值的环境名称。默认值为
default。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件。 --config-filePATH-
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中,默认值为
samconfig.toml。有关配置文件的详细信息,请参阅 Amazon SAMCLI 配置文件。 --confirm-changeset | --no-confirm-changeset-
提示您确认 Amazon SAM CLI 是否部署了计算的变更集。
--debug-
启用调试日志记录,以打印 Amazon SAM CLI 生成的调试消息并显示时间戳。
--disable-rollback | --no-disable-rollback-
指定当部署期间出现错误时是否要回滚 Amazon CloudFormation 堆栈。默认情况下,如果部署期间出现错误,Amazon CloudFormation 堆栈会回滚到上一个稳定状态。如果指定
--disable-rollback,当部署期间出现错误时,则在错误出现之前创建或更新的资源不会回滚。 --fail-on-empty-changeset | --no-fail-on-empty-changeset-
指定在未对堆栈进行任何更改时是否要返回非零退出代码。默认行为是返回非零退出代码。
--force-upload-
指定此选项可上传构件,即使要上传的构件与 Amazon S3 存储桶中的现有构件匹配。匹配的构件会被覆盖。
--guided, -g-
指定此选项后,Amazon SAM CLI 就会使用提示来指导您完成部署。
--help-
显示此消息并退出。
--image-repositoriesTEXT-
函数与其 Amazon ECR 存储库 URI 之间的映射。通过逻辑 ID 引用函数。以下是示例:
$sam deploy --image-repositoriesFunction1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo您可以在单个命令中多次指定此选项。
--image-repositoryTEXT-
此命令用于上传函数映像的 Amazon ECR 存储库的名称。对于使用
Image包类型声明的函数,必须使用此选项。 --kms-key-idTEXT-
用于加密 Amazon S3 存储桶中静态构件的 Amazon Key Management Service (Amazon KMS) 密钥的 ID。如果不指定此选项,则 Amazon SAM 会使用 Amazon S3 托管加密密钥。
--metadata-
要附加到模板中引用的所有构件的元数据的映射。
--no-execute-changeset-
指示是否要应用变更集。如果要在应用变更集之前查看堆栈更改,请指定此选项。此命令会创建 Amazon CloudFormation 变更集,然后退出而不应用变更集。要应用变更集,请在不使用此选项的情况下运行同一命令。
--no-progressbar-
将构件上传到 Amazon S3 时不显示进度条。
--notification-arnsLIST-
Amazon CloudFormation 与堆栈关联的 Amazon Simple Notification Service (Amazon SNS) 主题 ARN 列表。
--on-failure [ROLLBACK | DELETE | DO_NOTHING]-
指定堆栈创建失败时要采取的操作。
以下选项可用:
-
ROLLBACK- 将堆栈回滚到上一个已知良好状态。 -
DELETE- 将堆栈回滚到上一个已知良好状态(如果存在)。否则,删除堆栈。 -
DO_NOTHING- 既不回滚堆栈,也不删除堆栈。其效果与--disable-rollback相同。
默认行为是
ROLLBACK。注意
您可以指定
--disable-rollback选项或--on-failure选项,但不能同时指定两者。 -
--parameter-overridesLIST-
包含编码为键值对的 Amazon CloudFormation 参数覆盖的字符串。每个覆盖项均采用
ParameterKey=name,ParameterValue=value格式。多个覆盖项以空格分隔。以下是两个示例:$sam deploy --parameter-overridesParameterKey=value1,ParameterValue=value2$sam deploy --parameter-overridesParameterKey=value1,ParameterValue=value2 ParameterKey=hello,ParameterValue=world ParameterKey=apple,ParameterValue=banana --profileTEXT-
凭证文件中用于获取 Amazon 凭证的特定配置文件。
--regionTEXT-
部署至其中的 Amazon Web Services 区域。例如,us-east-1。
--resolve-image-repos-
自动创建 Amazon ECR 存储库,用于打包和部署非指导式部署。此选项仅适用于指定了
PackageType: Image的函数和层。如果指定--guided选项,则 Amazon SAM CLI 会忽略--resolve-image-repos。注意
如果 Amazon SAM 使用此选项自动为函数或层创建任何 Amazon ECR 存储库,在您以后从 Amazon SAM 模板中删除这些函数或层时,则相应的 Amazon ECR 存储库将被自动删除。
--resolve-s3-
自动创建 Amazon S3 存储桶,用于打包和部署非指导式部署。如果指定
--guided选项,则 Amazon SAM CLI 会忽略--resolve-s3。如果同时指定--s3-bucket和--resolve-s3选项,则会出现错误。 --role-arnTEXT-
应用变更集时 Amazon CloudFormation 担任的 IAM 角色的 Amazon 资源名称(ARN)。
--s3-bucketTEXT-
此命令用于上传 Amazon CloudFormation 模板的 Amazon S3 存储桶的名称。如果模板大于 51,200 字节,则需要
--s3-bucket或--resolve-s3选项。如果同时指定--s3-bucket和--resolve-s3选项,则会出现错误。 --s3-prefixTEXT-
上传到 Amazon S3 存储桶的构件的名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称(文件夹名称)。
--save-params-
将您在命令行中提供的参数保存到 Amazon SAM 配置文件中。
--signing-profilesLIST-
用于签署部署包的签名配置文件的列表。此选项采用键值对列表,其中密钥是要签名的函数或层的名称,值是签名配置文件,可选的配置文件所有者用
:分隔。例如FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner。 --stack-nameTEXT-
(必需)您要部署到的 Amazon CloudFormation 堆栈的名称。如果指定现有堆栈,则该命令将更新堆栈。如果指定新堆栈,则该命令将创建它。
-
列出要与已创建或更新的堆栈关联的标签。Amazon CloudFormation 还会将这些标签传播到堆栈中支持它的资源。
--template-file, --template, -tPATH-
Amazon SAM 模板所在位置的路径和文件名。
注意
如果指定此选项,则 Amazon SAM 只会部署模板及其指向的本地资源。
--use-json-
Amazon CloudFormation 模板的输出 JSON。默认输出为 YAML。
示例
有关使用 sam deploy 子命令的详细示例和深入演练,请参阅使用 Amazon SAM 进行部署简介。