用于构建cloudformation自定义资源的包装器装饰器
cfn-resource-timeout的Python项目详细描述
cfn-resource-timeout
这个项目是一个decorator和验证系统,它接受 编写自定义资源的枯燥工作。您仍然可以访问 上下文和事件正常,但decorator处理序列化 对云形成的反应和沟通结果。
请参阅cfn-lambda发件人 如果你想在 node.js.节点。
使用量
- 将cfn_resource.py复制到lambda函数的目录中 handler.py,可以使用pip安装。
- 使用cfn_resource.Resource事件装饰器装饰您的 类似于example.py 中的处理程序
- 压缩内容并上传到lambda
一旦函数启动,复制其arn并将其用作 你的custom resource。 有关您可能收到的请求的详细信息,请参见this document
{"AWSTemplateFormatVersion":"2010-09-09","Resources":{"FakeThing":{"Type":"Custom::MyResource","Properties":{"ServiceToken":"arn:aws:lambda:SOME-REGION:ACCOUNT:function:FunctionName","OtherThing":"foobar","AnotherThing":2}}}}
有关自定义资源如何工作的详细信息,请参见AWS docs
代码示例
在本例中,需要将lambda中的处理程序设置为 filename.handler其中filename包含以下内容。
importcfn_resource# set `handler` as the entry point for Lambdahandler=cfn_resource.Resource()@handler.createdefcreate_thing(event,context):# do some stuffreturn{"PhysicalResourceId":"arn:aws:fake:myID"}@handler.updatedefupdate_thing(event,context):# do some stuffreturn{"PhysicalResourceId":"arn:aws:fake:myID"}@handler.deletedefdelete_thing(event,context):# do some stuffreturn{"PhysicalResourceId":"arn:aws:fake:myID"}
许可证
此代码是在mit软件许可下发布的,请参见license.txt 详情。不包括任何形式的保证,版权 通知必须包含在再分配中。
历史记录
待发布
- (在此行下方插入新的发行说明)
1.2.0(2017-05-03)
- 从urllib移动到requests,以修复python 3上的一些编码错误
1.1.0(2017-04-27)
- 增加了python 3兼容性
1.0.0(2017-03-22)
- 从ryansb分叉到超时。
- 允许重新安排-引发新的内置NoResponse异常,a 资源可以避免向云信息发送任何干扰。这是为了支持 lambda函数需要300秒才能执行,因此需要重新安排 他们自己。
0.2.2(2016-01-29)
- 最后一个版本by RyanSB。