Rus*_*ane 5 layer amazon-web-services aws-cloudformation aws-lambda
情况是,我有大量的lambda函数(使用node js 8.10),它们的功能都非常不同,并且都使用CloudFormation进行了部署。
它们都共享一些非常复杂的功能。
目前,如果通用代码发生更改(这是相当频繁的),我将在每个项目(包括源代码控制)之间复制通用代码,然后重新部署每个功能。一直觉得这是错误的。
现在我们有了lambda图层-是的!还是呀?
太好了,所以现在我可以在单个存储库中维护代码了-滴答声,但是其余过程实际上并没有更好,甚至可能更糟...
如果将图层放入CloudFormation模板中,然后将ARN导出以导入到lambda函数模板中,则导出的ARN仅适用于该图层的版本1。
我可以使用Sub函数形成没有版本的ARN,然后在lamda函数CloudFormation模板中添加版本。但是,只要通用代码发生变化,我仍然需要更新所有下游lambda函数CloudFormation模板以添加最新版本。
我可以编写脚本,但是它仍然是一个庞大的PITA,并不能真正节省很多精力。我需要获取每个lambda函数项目的最新信息以更新版本号,然后重新提交回购协议,pr,merge,等等等等。
有没有其他方法可以始终使用最新版本的图层?
小智 4
使用无服务器部署和 CloudFormation Outputs 可以帮助解决这种情况。
resources:
Outputs:
MYOUTPUTNAME:
Value:
Ref: MYLAYERLambdaLayer # LambdaLayer is a required suffix
Run Code Online (Sandbox Code Playgroud)
functions:
...other required function keys in serverless
layers:
- ${cf:NAME_OF_STACK.MYOUTPUTNAME}
Run Code Online (Sandbox Code Playgroud)
sls deploy --force)。仅重新部署该函数不会更新输出引用。注意:如果您使用输出导出名称,则在引用当前版本时重新部署图层服务时将会遇到错误。因此,最好使用对堆栈输出的引用,这样就不会导致此错误。
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |