

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

# sam deploy
<a name="sam-cli-command-reference-sam-deploy"></a>

本页提供 AWS Serverless Application Model 命令行界面 (AWS SAMCLI) `sam deploy` 命令的参考信息。
+ 有关简介 AWS SAMCLI，请参阅 [那是什么 AWS SAMCLI？](what-is-sam-overview.md#what-is-sam-cli)
+ 有关使用该 AWS SAMCLI`sam deploy`命令的文档，请参阅[使用部署简介 AWS SAM](using-sam-cli-deploy.md)。

该`sam deploy`命令向用户部署应用程序。 AWS 云 AWS CloudFormation

## 用法
<a name="ref-sam-cli-deploy-usage"></a>

```
$ <environment variables> sam deploy <options>
```

## 环境变量
<a name="ref-sam-cli-deploy-env"></a>

`SAM_CLI_POLL_DELAY`  <a name="ref-sam-cli-deploy-env-sam-cli-poll-delay"></a>
在 shell 中将`SAM_CLI_POLL_DELAY`环境变量设置为秒值，以配置 AWS SAM CLI 检查 CloudFormation 堆栈状态的频率，这在查看来自的限制时很有用。 CloudFormation此 env 变量用于轮询 `describe_stack` API 调用，这些调用是在运行 `sam deploy` 时进行的。  
以下是此变量的示例：  

```
$ SAM_CLI_POLL_DELAY=5 sam deploy
```

## 选项
<a name="ref-sam-cli-deploy-options"></a>

`--capabilities LIST`  <a name="ref-sam-cli-deploy-options-capabilities"></a>
必须指定才能创建特定堆栈 CloudFormation 的功能列表。某些堆栈模板可能包含影响您权限的资源 AWS 账户，例如，通过创建新 AWS Identity and Access Management (IAM) 用户来影响您的权限。对于这些堆栈，您必须通过指定此选项来明确确认它们的功能。有效值仅为 `CAPABILITY_IAM` 和 `CAPABILITY_NAMED_IAM`。如果有 IAM 资源，则您可以指定任意一个功能。如果有具有自定义名称的 IAM 资源，则必须指定 `CAPABILITY_NAMED_IAM`。如果不指定此选项，则操作会返回 `InsufficientCapabilities` 错误。  
部署包含嵌套应用程序的应用程序时，您必须使用 `CAPABILITY_AUTO_EXPAND` 来确认此应用程序包含嵌套应用程序。有关更多信息，请参阅 [部署嵌套应用程序](serverless-sam-template-nested-applications.md#serverless-sam-templates-nested-applications-deploying)。

`--config-env TEXT`  <a name="ref-sam-cli-deploy-options-config-env"></a>
在配置文件中指定要使用的默认参数值的环境名称。默认值为 `default`。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--config-file PATH`  <a name="ref-sam-cli-deploy-options-config-file"></a>
包含要使用的默认参数值的配置文件的路径和文件名。在项目目录的根目录中，默认值为 `samconfig.toml`。有关配置文件的详细信息，请参阅 [AWS SAMCLI 配置文件](serverless-sam-cli-config.md)。

`--confirm-changeset | --no-confirm-changeset`  <a name="ref-sam-cli-deploy-options-confirm-changeset"></a>
提示您确认 AWS SAM CLI 是否部署了计算的变更集。

`--debug`  <a name="ref-sam-cli-deploy-options-debug"></a>
启用调试日志记录，以打印 AWS SAM CLI 生成的调试消息并显示时间戳。

`--disable-rollback | --no-disable-rollback`  <a name="ref-sam-cli-deploy-options-disable-rollback"></a>
指定在部署期间发生错误时是否回滚 CloudFormation 堆栈。默认情况下，如果部署期间出现错误，您的 CloudFormation 堆栈会回滚到上一个稳定状态。如果指定 `--disable-rollback`，当部署期间出现错误时，则在错误出现之前创建或更新的资源不会回滚。

`--fail-on-empty-changeset | --no-fail-on-empty-changeset`  <a name="ref-sam-cli-deploy-options-fail-on-empty-changeset"></a>
指定在未对堆栈进行任何更改时是否要返回非零退出代码。默认行为是返回非零退出代码。

`--force-upload`  <a name="ref-sam-cli-deploy-options-force-upload"></a>
指定此选项可上传构件，即使要上传的构件与 Amazon S3 存储桶中的现有构件匹配。匹配的构件会被覆盖。

`--guided, -g`  <a name="ref-sam-cli-deploy-options-guided"></a>
指定此选项后， AWS SAM CLI 就会使用提示来指导您完成部署。

`--help`  <a name="ref-sam-cli-deploy-options-help"></a>
显示此消息并退出。

`--image-repositories TEXT`  <a name="ref-sam-cli-deploy-options-image-repositories"></a>
函数与其 Amazon ECR 存储库 URI 之间的映射。通过逻辑 ID 引用函数。以下是示例：  

```
$ sam deploy --image-repositories Function1=123456789012.dkr.ecr.us-east-1.amazonaws.com/my-repo
```
您可以在单个命令中多次指定此选项。

`--image-repository TEXT`  <a name="ref-sam-cli-deploy-options-image-repository"></a>
此命令用于上传函数映像的 Amazon ECR 存储库的名称。对于使用 `Image` 包类型声明的函数，必须使用此选项。

`--kms-key-id TEXT`  <a name="ref-sam-cli-deploy-options-kms-key-id"></a>
 AWS Key Management Service (AWS KMS) 密钥的 ID，用于对 Amazon S3 存储桶中的静态项目进行加密。如果您未指定此选项，则 AWS SAM 使用 Amazon S3 托管的加密密钥。

`--metadata`  <a name="ref-sam-cli-deploy-options-metadata"></a>
要附加到模板中引用的所有构件的元数据的映射。

`--no-execute-changeset`  <a name="ref-sam-cli-deploy-options-no-execute-changeset"></a>
指示是否要应用变更集。如果要在应用变更集之前查看堆栈更改，请指定此选项。此命令会创建 CloudFormation 变更集，然后退出而不应用变更集。要应用变更集，请在不使用此选项的情况下运行同一命令。

`--no-progressbar`  <a name="ref-sam-cli-deploy-options-no-progressbar"></a>
将构件上传到 Amazon S3 时不显示进度条。

`--notification-arns LIST`  <a name="ref-sam-cli-deploy-options-notification-arns"></a>
与堆栈关联的亚马逊简单通知服务 (Amazon SNS) Service ARNs 主题 CloudFormation 列表。

`--on-failure [ROLLBACK | DELETE | DO_NOTHING]`  <a name="ref-sam-cli-deploy-options-on-failure"></a>
指定堆栈创建失败时要采取的操作。  
有以下选项可用：  
+ `ROLLBACK` - 将堆栈回滚到上一个已知良好状态。
+ `DELETE` - 将堆栈回滚到上一个已知良好状态（如果存在）。否则，删除堆栈。
+ `DO_NOTHING` - 既不回滚堆栈，也不删除堆栈。其效果与 `--disable-rollback` 相同。
默认行为是 `ROLLBACK`。  
您可以指定 `--disable-rollback` 选项或 `--on-failure` 选项，但不能同时指定两者。

`--parameter-overrides LIST`  <a name="ref-sam-cli-deploy-options-parameter-overrides"></a>
包含编码为键值对的 CloudFormation 参数覆盖的字符串。每个覆盖项均采用 `ParameterKey=name,ParameterValue=value` 格式。多个覆盖项以空格分隔。以下是两个示例：  

```
$ sam deploy --parameter-overrides ParameterKey=value1,ParameterValue=value2
```

```
$ sam deploy --parameter-overrides ParameterKey=value1,ParameterValue=value2 ParameterKey=hello,ParameterValue=world ParameterKey=apple,ParameterValue=banana
```

`--profile TEXT`  <a name="ref-sam-cli-deploy-options-profile"></a>
您的凭证文件中用于获取 AWS 凭证的特定个人资料。

`--region TEXT`  <a name="ref-sam-cli-deploy-options-region"></a>
 AWS 区域 要部署到的。例如，us-east-1。

`--resolve-image-repos`  <a name="ref-sam-cli-deploy-options-resolve-image-repos"></a>
自动创建 Amazon ECR 存储库，用于打包和部署非指导式部署。此选项仅适用于指定了 `PackageType: Image` 的函数和层。如果指定 `--guided` 选项，则 AWS SAM CLI 会忽略 `--resolve-image-repos`。  
如果使用此选项 AWS SAM 自动为函数或层创建任何 Amazon ECR 存储库，而您随后从 AWS SAM 模板中删除了这些函数或层，则相应的 Amazon ECR 存储库将被自动删除。

`--resolve-s3`  <a name="ref-sam-cli-deploy-options-resolve-s3"></a>
自动创建 Amazon S3 存储桶，用于打包和部署非指导式部署。如果指定 `--guided` 选项，则 AWS SAM CLI 会忽略 `--resolve-s3`。如果同时指定 `--s3-bucket` 和 `--resolve-s3` 选项，则会出现错误。

`--role-arn TEXT`  <a name="ref-sam-cli-deploy-options-role-arn"></a>
应用变更集时 CloudFormation 扮演的 IAM 角色的 Amazon 资源名称 (ARN)。

`--s3-bucket TEXT`  <a name="ref-sam-cli-deploy-options-s3-bucket"></a>
此命令用于上传您的 CloudFormation 模板的 Amazon S3 存储桶的名称。如果模板大于 51,200 字节，则需要 `--s3-bucket` 或 `--resolve-s3` 选项。如果同时指定 `--s3-bucket` 和 `--resolve-s3` 选项，则会出现错误。

`--s3-prefix TEXT`  <a name="ref-sam-cli-deploy-options-s3-prefix"></a>
上传到 Amazon S3 存储桶的构件的名称中添加的前缀。前缀名称是 Amazon S3 存储桶的路径名称（文件夹名称）。

`--save-params`  <a name="ref-sam-cli-deploy-options-save-params"></a>
将您在命令行中提供的参数保存到 AWS SAM 配置文件中。

`--signing-profiles LIST`  <a name="ref-sam-cli-deploy-options-signing-profiles"></a>
用于签署部署包的签名配置文件的列表。此选项采用键值对列表，其中密钥是要签名的函数或层的名称，值是签名配置文件，可选的配置文件所有者用 `:` 分隔。例如 `FunctionNameToSign=SigningProfileName1 LayerNameToSign=SigningProfileName2:SigningProfileOwner`。

`--stack-name TEXT`  <a name="ref-sam-cli-deploy-options-stack-name"></a>
（必填）您要部署到的 CloudFormation 堆栈的名称。如果指定现有堆栈，则该命令将更新堆栈。如果指定新堆栈，则该命令将创建它。

`--tags LIST`  <a name="ref-sam-cli-deploy-options-tags"></a>
要与已创建或更新的堆栈关联的标签列表。 CloudFormation 还会将这些标签传播到堆栈中支持它的资源。

`--template-file, --template, -t PATH`  <a name="ref-sam-cli-deploy-options-template-file"></a>
您的 AWS SAM 模板所在的路径和文件名。  
如果指定此选项，则仅 AWS SAM 部署模板及其指向的本地资源。

`--use-json`  <a name="ref-sam-cli-deploy-options-use-json"></a>
为 CloudFormation 模板输出 JSON。默认输出为 YAML。

## 示例
<a name="sam-cli-command-reference-sam-deploy-examples"></a>

有关使用 `sam deploy` 子命令的详细示例和深入演练，请参阅[使用部署简介 AWS SAM](using-sam-cli-deploy.md)。