本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
部署无服务器应用程序
Amazon SAM 使用 Amazon CloudFormation 作为基础部署机制。有关更多信息,请参阅Amazon CloudFormation《用户指南》中的什么是Amazon CloudFormation?。用于部署无服务器应用程序的标准输入是使用 sam build 命令创建的构建构件。有关 sam build 的更多信息,请参阅构建无服务器应用程序。
您可以使用 Amazon SAM 命令行界面(CLI)命令手动部署应用程序。您还可以使用持续集成和持续部署 (CI/CD) 系统自动部署应用程序。您可以使用许多常见的 CI/CD 系统来部署Amazon SAM应用程序,包括 Amazon CodePipeline
使用 CI/CD 系统进行部署
Amazon SAM 可帮助组织为其首选的 CI/CD 系统创建管道,以便他们能毫不费力地获得 CI/CD 的好处,例如,加快部署频率,缩短变更交付时间,以及减少部署错误。
借助构建容器映像,Amazon SAM 可简化无服务器应用程序的 CI/CD 任务。Amazon SAM 提供的映像包括 Amazon SAM CLI 以及适用于许多受支持 Amazon Lambda 运行时的构建工具。这使得使用 Amazon SAM CLI 构建和打包无服务器应用程序变得更轻松。这些映像还使团队无需自行为 CI/CD 系统创建和管理映像。有关 Amazon SAM 构建容器映像的更多信息,请参阅 映像存储库。
多个 CI/CD 系统支持 Amazon SAM 构建容器映像。您应使用哪个 CI/CD 系统取决于多个因素。这些因素包括:应用程序使用单个运行时系统还是多个运行时系统;您是要在容器映像中还是直接在主机(虚拟机 (VM) 或裸机主机)上构建应用程序。
Amazon SAM 还为多个 CI/CD 系统提供了一组默认管道模板,其中纳入了 Amazon 的部署最佳实践。这些默认管道模板使用标准的 JSON/YAML 管道配置格式,内置的最佳实践有助于执行多账户和多区域部署,并确保管道不会对基础设施进行意外更改。
有两种方法可使用 Amazon SAM 来部署无服务器应用程序:1) 修改现有管道配置以使用 Amazon SAM CLI 命令;或者 2) 生成示例 CI/CD 管道配置,您可以将其用作自己的应用程序的起点。
有关这些选项的更多信息,请参阅以下主题:
使用 Amazon SAM CLI 进行部署
在本地开发和测试无服务器应用程序后,您可以使用 sam deploy 命令部署应用程序。
要让 Amazon SAM 使用提示来指导您完成部署,请指定 --guided 标记。指定此标记后,sam deploy 命令会压缩应用程序构件,将其上传到 Amazon Simple Storage Service (Amazon S3)(对于 .zip 文件存档)或 Amazon Elastic Container Registry (Amazon ECR)(对于容器映像)。此命令然后将您的应用程序部署到 Amazon 云。
示例:
# Deploy an application using prompts: sam deploy --guided
使用 Amazon SAM CLI 故障排除部署
Amazon SAM CLI错误:“未满足安全限制”
运行 sam deploy --guided 时,系统用问题 HelloWorldFunction may not have authorization defined, Is this okay? [y/N]
向您发出提示。如果您用 N
(默认选项)来回应此提示,将会出现以下错误:
Error: Security Constraints Not Satisfied
此提示告知您,您即将部署的应用程序可能在未经授权的情况下配置了 Amazon API Gateway API。用 N
来回应此提示,即表明您不同意继续部署。
要解决此问题,您具有以下选项:
-
在经授权的情况下配置应用程序。有关配置授权的更多信息,请参阅 控制 API Gateway API 访问权限。
-
用
Y
来回答此问题,以表明您同意部署在未经授权的情况下配置了 API Gateway API 的应用程序。
逐步部署
如果您想逐步部署 Amazon SAM 应用程序,而不是一次性全部部署,您可以指定 Amazon CodeDeploy 提供的部署配置。有关更多信息,请参阅《Amazon CodeDeploy用户指南》 CodeDeploy中的使用部署配置。
有关配置 Amazon SAM 应用程序以进行逐步部署的信息,请参阅逐步部署无服务器应用程序。
了解更多信息
有关部署无服务器应用程序的实际操作示例,请参阅完整 Amazon SAM 研讨会中的以下主题:
-
模块 3 - 手动部署
- 了解如何使用 Amazon SAM CLI 构建、打包和部署无服务器应用程序。 -
模块 4 - CI/CD
- 了解如何通过创建持续集成和持续交付 (CI/CD) 管道实现构建、打包和部署阶段的自动化。