用于部署应用程序的选项 AWS SAM - AWS Serverless Application Model

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

用于部署应用程序的选项 AWS SAM

使用 AWS SAM,您可以手动部署应用程序,也可以自动部署。使用 AWS SAM CLI 手动部署您的应用程序。要自动执行部署,请使用管线与持续集成和持续部署(CI/CD)系统。本节中的主题提供有关这两种方法的信息。

如何使用 AWS SAM CLI 手动部署

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

要使用提示 AWS SAM 指导您完成部署,请指定标--guided志。指定此标记后,sam deploy 命令会压缩应用程序构件,将其上传到 Amazon Simple Storage Service (Amazon S3)(对于 .zip 文件存档)或 Amazon Elastic Container Registry (Amazon ECR)(对于容器映像)。然后,该命令会将您的应用程序部署到 AWS 云端。

示例

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

使用 CI/CD 系统和管线进行部署

AWS SAM 使用管道和持续集成和持续部署 (CI/CD) 系统帮助您实现自动部署。 AWS SAM 可用于创建管道和简化CI/CD tasks for serverless applications. Multiple CI/CD系统支持 AWS SAM 构建容器镜像, AWS SAM 还可以为多个 CI/CD 系统提供一组默认管道模板,这些模板封装了部署最佳实践 AWS。

有关更多信息,请参阅 使用 CI/CD 系统和管道进行部署 AWS SAM

逐步部署

如果您想逐步部署 AWS SAM 应用程序,而不是一次全部部署,则可以指定 AWS CodeDeploy 提供的部署配置。有关更多信息,请参阅《AWS CodeDeploy 用户指南》 CodeDeploy中的使用部署配置

有关将 AWS SAM 应用程序配置为逐步部署的信息,请参阅使用以下方法逐步部署无服务器应用程序 AWS SAM

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

AWS 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 来回应此提示,即表明您不同意继续部署。

要解决此问题,您具有以下选项:

  • 在经授权的情况下配置应用程序。有关配置授权的更多信息,请参阅 使用您的 AWS SAM 模板控制 API 访问权限

  • Y 来回答此问题,以表明您同意部署在未经授权的情况下配置了 API Gateway API 的应用程序。

了解更多

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

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

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