gpt4 book ai didi

amazon-web-services - 如何在单个 CloudFormation 堆栈上创建 2 个 AWS lambda?

转载 作者:行者123 更新时间:2023-12-03 07:14:42 26 4
gpt4 key购买 nike

我目前有 2 个 lambda 函数,我正在尝试对它们进行 CI/CD 流程。所以我尝试了两种方法:

  1. 我的 CI 上有两个单独的步骤。我尝试制作 CloudFormation 包,然后部署每个 lambda,每个 lambda 都有自己的 SAM 模板和模板。但结果是堆栈中唯一保留的是最后部署的一个。我了解部署是 AWS CLI 创建的一种不使用创建/更新堆栈操作的智能方式。但它不断在它们之间进行覆盖(是的,它们有不同的资源名称)。

  2. 在单个存储库中拥有单个 sam 模板和一个步骤:我也在具有 lambda 和单个 sam 文件的单个存储库中尝试此操作,但我的 lambda 上有重复的代码,区别在于每个它们对于要使用的处理程序有不同的设置。

我的目标是在一个堆栈中有 2 个 lambda。

最佳答案

我要回答我自己的问题,因为我注意到 sam 模板是关键。最初我正在做这样的 sam 模板:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
certainty:
Type: 'AWS::Serverless::Function'
Properties:
Handler: ./myfunc/index.handler
Runtime: nodejs8.10
CodeUri: .
Description: >-
here goes
my description
MemorySize: 128
Timeout: 20
Role: 'arn:aws:iam::116738426468:role/rolename'
Events:
Schedule1:
Type: Schedule
Properties:
Schedule: rate(1 day)

certaintyauxiliar:
Type: 'AWS::Serverless::Function'
Properties:
Handler: my-other-func/index.handler
Runtime: nodejs8.10
CodeUri: .
Description: >-
blabla
blabla.
MemorySize: 1152
Timeout: 300
Role: 'arn:aws:iam::116738426468:role/roleanme'
Events:
Api1:
Type: Api
Properties:
Path: /show-all
Method: POST

这里导致“代码重复”的原因是 lambdas 代码 uri 指示应该获取包含两个存储库的文件夹中的所有内容。并告诉深入目录以查找处理程序。

所以我更改了代码 uri 和处理程序,现在 lambda 正在抓取每个 lambda 中应该包含的内容。现在我的 sam 模板如下所示:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: An AWS Serverless Specification template describing your function.
Resources:
certainty:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs8.10
CodeUri: ./my-func
Description: >-
here goes
my description
MemorySize: 128
Timeout: 20
Role: 'arn:aws:iam::116738426468:role/roleName'
Events:
Schedule1:
Type: Schedule
Properties:
Schedule: rate(1 day)

certaintyauxiliar:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs8.10
CodeUri: ./my-other-func
Description: >-
bla bla
bla bla
MemorySize: 1152
Timeout: 300
Role: 'arn:aws:iam::116738426468:role/rolename'
Events:
Api1:
Type: Api
Properties:
Path: /path
Method: POST

抱歉,现在我发现在这个问题上我没有提供足够的信息,但我回答了我自己的问题,希望我可以帮助一些像我一样迷失的人。无服务器是一种不错的方法,但它的学习曲线确实很安静。问候,丹尼尔

关于amazon-web-services - 如何在单个 CloudFormation 堆栈上创建 2 个 AWS lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53841969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com