微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAM/无服务器/CodeBuild 说明

如何解决SAM/无服务器/CodeBuild 说明

我希望对我在网上看到的一些术语进行澄清,因为它与 AWS 尤其是 lambda 相关。首先,我想知道命令 sam build/deploy 与设置 CodeBuild 作业相比如何工作。我是否需要 CodeBuild 作业来运行这些命令? sam deploy 命令专门查找哪些文件?它寻找 serverless.ymltemplate.yml 还是两者兼而有之?什么是 sam.yml 文件或它们是否过时?

我有一个带有用于 lambda 的 CodeBuild 管道的应用程序,但我正在扩展我的存储库以包含多个 lambda 并考虑在每个 lambda 目录中放置一个 serverless.yml 文件,但我不想创建一个CodeBuild 作业和每个作业的 buildspec。我假设 sam deploy 搜索所有 template.ymlserverless.yml 文件并将您的堆栈构建为一个整体(并且只更新需要更新的内容?)

如果对 API Gateway 感到好奇,应用程序在 Node 中。任何见解将不胜感激。

解决方法

我会尽量给出简短的回答:

  • sam deploy 的作用:它将压缩代码并在 .aws-sam 文件夹中创建 cloudformation yaml 文件并运行 cloudformation deploy。
  • 我们是否需要 CodeBuild 来运行相同的部署:我们仍然需要一些服务器来运行 sam deploy 或在安装了节点的情况下构建,它可以是本地机器或远程服务器或 CodeBuild 环境。立>
  • 我们需要多个模板吗?所有 Lambda 都可以在一个模板中创建。但是cloudformation 有150 个资源的限制。如果我们在单个模板中有太多的函数和 API,我们很容易达到这个限制。每个 api 可能会转换为多个云形成资源。例如:1 个 lambda 函数可以是 iam 角色、cloudwatch 日志、api 路由、方法、集成、事件源等。
  • sam deploy 是否总是寻找 template.yaml 默认情况下是,但可以通过传递 --template-file sam deploy --template-file template-x.yml
  • 轻松覆盖
  • 仅更新更改的资源? Cloudformation 更新堆栈仅更新更改的资源。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。