【问题标题】:SAM/Serverless/CodeBuild clarificationSAM/Serverless/CodeBuild 说明
【发布时间】:2021-04-29 16:23:44
【问题描述】:

我希望对我在网络上看到的一些与 AWS 尤其是 lambdas 相关的术语进行澄清。对于初学者,我想知道命令 sam build/deploy 的工作原理与设置 CodeBuild 作业的区别。我是否需要 CodeBuild 作业来运行这些命令? sam deploy 命令具体查找哪些文件?它会寻找serverless.yml 或template.yml 还是两者兼而有之?什么是sam.yml 文件或它们是否过时?

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

如果对使用 API 网关感到好奇,应用程序位于 Node 中。任何见解将不胜感激。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudformation serverless-framework


    【解决方案1】:

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

    • sam deploy 是做什么的:它将代码压缩并创建 cloudformation yaml 文件到.aws-sam 文件夹并运行 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 更新堆栈仅更新更改的资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-22
      • 1970-01-01
      • 2020-02-02
      • 2021-09-02
      • 2018-09-28
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多