为给定项目创建sam模板
sam-template-creator的Python项目详细描述
sam模板创建者
简介
sam模板创建器帮助您将基础结构设置为aws无服务器项目的代码。
它读取您的项目文件夹并生成一个包含必需的函数、全局变量、环境变量等的sam模板 与一个成熟的框架(如无服务器)相比,这个模板创建者的作用域是有限的。但这也有好处:
该工具是轻量级的,除了iac-yaml之外,不会生成其他文件,而且使用简单。尽管它可能不足以满足非常复杂的
用例,它仍然可以提供一个扩展的起点。 使用PIP安装工具
现在,请转到项目的根目录并键入 或者使用任何目录的绝对路径 脚本将在项目目录的根目录中创建一个 您还可以传递一些(可选)参数: 创建模板后,您现在应该可以使用 重要!sam template creator要求以某种方式组织项目。 如果每个lambda都有自己的目录,那么这个工具将最有效,尽管它也应该能够处理其他项目结构。 如果处理程序文件的文件夹或子文件夹中存在单个zip(对于大多数语言)或可执行文件,则该工具假定此zip包含要上载的代码。 这个项目有三个主要部分 除了这些文件夹之外,还有一个 单元测试可以使用要求
使用指南/操作方法
pip install sam-template-creator
# or alternatively
pip3 install sam-template-creator
sam-template-creator --location .
# or with shorthand argument names
sam-template-creator -l .
sam模板创建者--位置/路径/目标/项目
template.yaml
文件。检查里面的东西!它可能会指出一些您必须填写的内容。aws cloudformation package --template-file template.yaml --s3-bucket YOUR-BUCKET-NAME --output-template-file outputSamTemplate.yaml
aws cloudformation deploy --template-file outputSamTemplate.yaml --stack-name PICK-A-STACK-NAME --capabilities CAPABILITY_IAM
使用注意事项
目录
将检查包含处理程序及其直接引用的文件的文件,以获取有关所需权限、环境变量等的信息。命名约定
巨蟒
<5> go def lambda_handler(s3event,context)
def put_hello_world_hander(event,context)
,则函数将映射到put
到/hello/world
s3
:s3 event
或s3u event
或…handler
,除非您的lambda文件夹中有一个名为main
的可执行文件。如果是这样,工具将假定
可执行文件有你的羔羊。它将相应地设置handler
和codeuri
。
例如,如果您的文件夹mylambda
在dist/main
下包含main
文件,处理程序
将变为main
,其中codeuri
等于/mylambda/dist/main
func postaddhellorequest(u context.context,event events.apigatewayproxyrequest)error
映射到post
到/add/hello
s3
,例如:s3 event
或s3u event
或…节点
< H5> Java/H5>项目结构
reader
:包含有助于读取项目中文件的文件。py类读取单个文件并检索
资源和其他配置信息。因为文件根据语言的不同会看起来非常不同,所以它使用策略模式
帮助完成这些特定语言的任务。例如,在处理python时,使用pythonstrategy
类。中间件
:这些文件和函数从读取端获取信息并进行转换,添加/删除某些配置,然后
传递给作者。writer
:这些文件负责将信息写入yaml。util
文件夹,一个coordinator.py
文件,它协调其他文件的工作,还有一个命令行.py
,
它包含参数解析器,并在检查输入后调用协调器。测试
python-m unittest
运行。一个相对简单的it测试使用tests/it test下的bash脚本test.sh运行。
它需要一个bucket作为参数(用于上载lambda zip)和默认aws凭据
路线图
推荐PyPI第三方库