可以在无服务器框架中分离我的代码和基础设施吗?
我正在使用无服务器框架(https://serverless.com)来部署我的亚马逊网络服务资源。我有一个在serverless.yml文件中定义的lambda函数,如下所示:
functions:
hello:
handler: handler.hello
...现在,我想将我的基础架构(serverless.yml)与我的代码分开。将有两个独立的git项目:一个用于基础设施,另一个用于lambda (代码部分)。
这将是开发流程:在lambda项目(git merge)中所做的更改将触发CI/CD管道来提取代码、执行必要的检查(提示、测试等)并将lambda部署到s3存储桶中。
在此之后,我可以包含s3作为我的lambda函数的源代码,并使用包含更改的函数更新堆栈。如下所示:
functions:
hello:
handler: function-s3-location
...我的问题:
1)这是一种好的CI/CD方法吗?
2)是否可以使用无服务器框架,或者只能使用AWS::Lambda::Function的代码属性来指定s3存储桶?
谢谢!
发布于 2018-10-16 07:40:15
不管你的决定如何,最终,这都将是一个架构决策,应该考虑到过程、团队经验、文化、架构知识等。
为了给你一点洞察力,你可以将你的项目组织成你在文件夹中的函数和在diff文件夹中的任何其他模块。您需要注意的是,您在配置文件中定义了"package.include“和/或"package.exclude”。
此外,如果您所说的结构指的是所有的CloudFormation资源,那么在您的serverless.yml配置文件中有一个对应的部分。如果它开始变得太大,您可以使用额外的配置文件并将其导入到serverless.yml中
例如:
├── config //configs based on your stage
├── dev.json
├── prod.json
├── functions
├── functionsA
├── index.js
├── functionsB
├── index.js
├── tests
├── unit.test.js
├── package.json
├── serverless.yml
├── serverless.resources.yml将所有内容放在一个repo中的好处:
的本地实例和执行集成测试所需的所有代码。如果你不想更新你的云,together.
我希望这些理由足以让你做出决定。
https://stackoverflow.com/questions/52817039
复制相似问题