我目前有2个lambda函数,我正在尝试为其进行CI / CD处理。所以我尝试了两种方法:
在我的CI上分两个步骤。我尝试制作cloudformation软件包,然后部署每个lambda,每个lambda都有自己的SAM模板和模板。但是结果是,将唯一保留在堆栈中的是部署的最后一个。我知道部署是aws cli create不使用create / update堆栈操作的明智方法。但它们之间会不断覆盖,(是的,它们具有不同的资源名称)
在单个回购中具有单个sam模板和一个步骤:我也在具有lambda和单个sam文件的单个回购中尝试了此操作,但是我的lambda上有重复的代码,不同之处在于每个他们针对要使用的处理程序设置不同。
我的目标是在一个堆栈中有2个lambda。
谢谢,丹尼尔
答案 0 :(得分:0)
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
对不起,现在我可以看到在这个问题上我没有提供足够的信息,但是我回答了自己的问题,希望我能像以前一样帮助一些迷路的人。无服务器是一种不错的方法,但是它确实具有安静的学习曲线。 问候,丹尼尔