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

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

部署无服务器应用程序

Amazon SAM用Amazon CloudFormation作底层部署机制。有关更多信息,请参阅《Amazon CloudFormation 用户指南》中的什么是 Amazon CloudFormation?。部署无服务器应用程序的标准输入是使用山姆·布莱德命令创建的构建工件。有关 sam build 的更多信息,请参阅 构建无服务器应用程序

您可以使用Amazon SAM命令行接口(CLI)命令手动部署应用程序。您还可以使用持续集成和持续部署(CI/CD)系统自动应用程序部署。您可以使用许多常见的 CI/CD 系统来部署Amazon SAM应用程序,包括 Jenkins Amazon CodePipeline、C GitLab I/CD 和 Acti GitHubon s。

使用 CI/CD 系统部署

Amazon SAM帮助组织为其首选的 CI/CD 系统创建管道,以便他们能够以最少的努力实现 CI/CD 的好处,例如加快部署频率、缩短变更交付时间和减少部署错误。

Amazon SAM借助构建容器映像,简化了无服务器应用程序的 CI/CD 任务。Amazon SAM提供的镜像包括用于许多支持的Amazon Lambda运行时的Amazon SAM CLI 和编译工具。这使得使用Amazon SAM CLI 构建和打包无服务器应用程序变得更加容易。这些映像还减少了团队为 CI/CD 系统创建和管理自己的映像的需求。有关Amazon SAM构建容器镜像的更多信息,请参阅镜像

多个 CI/CD 系统支持Amazon SAM构建容器映像。您应该使用哪个 CI/CD 系统取决于多个因素。其中包括您的应用程序是使用单个运行时还是多个运行时,或者您想在容器映像内构建应用程序,还是直接在主机(虚拟机 (VM) 或裸机主机)上构建应用程序。

Amazon SAM还为多个 CI/CD 系统提供了一组默认管道模板,这些模板封装Amazon了部署最佳实践。这些默认管道模板使用标准的 JSON/YAML 管道配置格式,内置的最佳实践有助于执行多账户和多区域部署,并验证管道无法对基础架构进行意外更改。

部署无服务器应用程序有两个主要选项:1) 修改现有流水线配置以使用Amazon SAM CLI 命令,或 2) 生成示例 CI/CD 管道配置,您可以将其用作自己的应用程序的起点。Amazon SAM

有关这些选项的更多信息,请参阅以下主题:

使用Amazon SAM CLI 进行部署

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

要通过提示Amazon SAM指导您完成部署,请指定标--guided志。当您指定此标志时,该sam deploy命令会压缩您的应用程序工件,将它们上传到亚马逊Simple Storage Service (Amazon S3)(用于.zip 文件存档)或亚马逊Elastic Container Registry (Amazon ECR)(用于包含图像)。然后,该命令将您的应用程序部署到Amazon云端。

示例:

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

使用Amazon SAM CLI 对部署进行故障排除

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提供的部署配置。有关更多信息,请参阅《Amazon CodeDeploy用户指南》中的 CodeDeploy “使用部署配置”。

有关配置Amazon SAM应用程序以逐步部署的信息,请参阅逐步部署无服务器应用程序

了解更多信息

有关部署无服务器应用程序的实际操作示例,请参阅 “完整Amazon SAM研讨会” 中的以下内容:

  • 模块 3-手动部署- 学习如何使用Amazon SAM CLI 构建、打包和部署无服务器应用程序。

  • 模块 4-CI/CD — 学习如何通过创建持续集成和交付 (CI/CD) 管道来实现构建、打包和部署阶段的自动化。