部署无服务器应用程序 - AWS Serverless Application Model
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

部署无服务器应用程序

AWS SAM 使用 AWS CloudFormation 作为基础部署机制。有关更多信息,请参阅 中的AWS CloudFormation什么是 ?。AWS CloudFormation 用户指南

您可以使用 AWS SAM 命令行界面 (CLI) 命令部署应用程序。要自动执行部署,您还可以使用与 AWS 集成的其他 AWS SAM 服务。

部署无服务器应用程序的标准输入是使用 sam 生成 命令创建的构建构件。有关 sam build 的更多信息,请参阅构建无服务器应用程序

使用 AWS SAM CLI 部署

在本地开发和测试无服务器应用程序后,您可以使用 sam deploy 命令部署应用程序。

如果您希望 AWS SAM 用提示引导您完成部署过程,请指定 --guided 标记。当您指定此标记时,sam deploy 命令将压缩您的应用程序构件,将它们上传到 Amazon S3(对于 .zip 文件存档)或 Amazon ECR(对于包含映像),然后将您的应用程序部署到 AWS 云。

示例:

# Deploy an application using prompts: sam deploy --guided

发布无服务器应用程序

是一项服务,用于托管使用 AWS Serverless Application Repository 构建的无服务器应用程序。AWS SAM如果要与其他用户共享无服务器应用程序,您可以在 AWS Serverless Application Repository中发布它们。您还可以搜索、浏览和部署其他人已发布的无服务器应用程序。有关更多信息,请参阅 中的AWS Serverless Application Repository什么是 ?。AWS Serverless Application Repository 开发人员指南

自动执行部署

要自动执行无服务器应用程序的部署过程,您可以将 AWS SAM 与许多其他 AWS 服务结合使用。

  • CodeBuild:使用 构建、本地测试和打包无服务器应用程序。AWS CodeBuild有关更多信息,请参阅 中的AWS CodeBuild什么是 ?。AWS CodeBuild 用户指南

  • CodeDeploy:使用 AWS CodeDeploy 将更新逐步部署到您的无服务器应用程序。有关更多信息,请参阅逐步部署无服务器应用程序

  • CodePipeline:使用 对释放无服务器应用程序所需的步骤进行建模、可视化和自动化。AWS CodePipeline有关更多信息,请参阅 中的AWS CodePipeline什么是 ?。AWS CodePipeline 用户指南

Troubleshooting

AWS SAM CLI 错误:“安全约束未满足”

执行 sam deploy --guided 时,系统会提示您回答 HelloWorldFunction may not have authorization defined, Is this okay? [y/N] 问题。 如果您使用“N”(默认响应) 响应此提示,您将看到以下错误:

 
Error: Security Constraints Not Satisfied
            

提示符通知您,您即将部署的应用程序可能已在未经授权配置 API 网关 API。如果向此提示响应“N”(默认),您将认为这不可行。

要修复此问题,您有以下选择:

  • 使用 授权配置应用程序。有关配置授权的信息,请参阅控制对 API 网关 APIs 的访问

  • 使用“Y”响应此问题,表示您可使用“Y”来部署具有在未经授权的情况下配置的 API 网关 API 的应用程序”。