

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

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

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

有关简介 AWS SAMCLI，请参阅 [那是什么 AWS SAMCLI？](what-is-sam-overview.md#what-is-sam-cli)

该`sam publish`命令将 AWS SAM 应用程序发布到 AWS Serverless Application Repository。此命令采用打包的 AWS SAM 模板并将应用程序发布到指定 AWS 区域。

该`sam publish`命令要求 AWS SAM 模板包含一个包含发布所需的应用程序元数据的`Metadata`部分。在 `Metadata` 部分中，`LicenseUrl` 和 `ReadmeUrl` 属性必须引用 Amazon Simple Storage Service (Amazon S3) 存储桶，而不是本地文件。有关 AWS SAM 模板`Metadata`部分的更多信息，请参阅[使用 AWS SAMCLI 发布应用程序](serverless-sam-template-publishing-applications.md)。

默认情况下，`sam publish` 将创建应用程序为私有。在允许其他 AWS 账户查看和部署您的应用程序之前，您必须将其共享。有关共享应用程序的信息，请参阅*《AWS Serverless Application Repository 开发人员指南》*中的 [AWS Serverless Application Repository 基于资源的策略示例](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/security_iam_resource-based-policy-examples.html)。

**注意**  
目前 `sam publish` 不支持发布本地指定的嵌套应用程序。如果您的应用程序包含嵌套应用程序，则在发布父应用程序 AWS Serverless Application Repository 之前，必须将它们单独发布到中。

## 用法
<a name="sam-cli-command-reference-sam-publish-usage"></a>

```
$ sam publish <options>
```

## 选项
<a name="sam-cli-command-reference-sam-publish-options"></a>

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

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

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

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

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

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

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

`--semantic-version TEXT`  <a name="sam-cli-command-reference-sam-publish-options-semantic-version"></a>
（可选）使用此选项提供应用程序的语义版本，该版本将覆盖模板文件 `Metadata` 部分中的 `SemanticVersion` 属性。有关语义版本控制的更多信息，请参阅[语义版本控制规范](https://semver.org/)。

`--template, -t PATH`  <a name="sam-cli-command-reference-sam-publish-options-template"></a>
 AWS SAM 模板文件的路径`[default: template.[yaml|yml]]`。

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

要发布应用程序，请执行以下操作：

```
$ sam publish --template packaged.yaml --region us-east-1
```