本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
部署无服务器程序
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 SAMCLI。这些映像还减轻了团队为 CI/CD 系统创建和管理自己的映像的需要。有关 的更多信息Amazon SAM构建容器镜像,请参阅映像存储库.
支持多个 CI/CD 系统Amazon SAM构建容器映像。你应该使用哪个 CI/CD 系统取决于几个因素。其中包括应用程序是使用单个运行时还是多次运行时,还是要在容器映像中构建应用程序,还是直接在主机上构建应用程序,无论是虚拟机 (VM) 还是裸机主机。
Amazon SAM还为封装的多个 CI/CD 系统提供了一组默认管道模板Amazon的部署最佳实践。这些默认管道模板使用标准的 JSON/YAML 管道配置格式,内置的最佳实践有助于执行多账户和多区域部署,并验证管道是否无法对基础架构进行意外更改。
您有两个主要选项可供使用。Amazon SAM部署无服务器应用程序:1) 修改现有管道配置以使用Amazon SAMCLI 命令,或 2) 生成 CI/CD 管道配置示例,您可以用作自己的应用程序的起点。
有关这些选项的更多信息,请参阅以下主题:
使用部署Amazon SAMCLI
在本地开发和测试无服务器应用程序之后,您可以使用sam deploy命令。
要拥有Amazon SAM通过提示指导您完成部署,请指定--guided旗子。当你指定此标志时,sam deploy命令 Zip 您的应用程序工件,将其上传到亚马逊 Simple Storage Service (Amazon S3)(用于 .zip 文件存档)或亚马逊 Elastic Container Registry (Amazon ECR)(用于包含图像)。然后,命令将您的应用程序部署到Amazon云。
示例:
# Deploy an application using prompts: sam deploy --guided
使用对部署故障排除Amazon SAMCLI
Amazon SAMCLI 错误:“安全限制未满足”
运行时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提供。有关更多信息,请参阅 。在 CodeDeploy 中使用部署配置中的Amazon CodeDeploy用户指南.
有关配置您的Amazon SAM应用程序要逐步部署,请参阅逐步部署无服务器应用程.