用于构建CloudFormation自定义资源的包装装饰器
项目描述
cfn-resource-timeout
本项目是一个装饰器和验证系统,可简化自定义资源的编写工作。您仍可以像往常一样访问上下文和事件,但装饰器将处理您的响应序列化和将结果传递给CloudFormation。
如果您想使用Node.js编写自定义资源,请参阅Andrew Templeton的cfn-lambda。
使用方法
将cfn_resource.py复制到您的lambda函数目录中的handler.py,可以通过使用pip来完成此操作。
使用cfn_resource.Resource事件装饰器来装饰您的处理器,如example.py中的示例所示
将内容压缩并上传到Lambda
一旦函数启动,复制其ARN并将其用作您自定义资源的ServiceToken。自定义资源的更多信息,请参阅此文档
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"FakeThing": {
"Type": "Custom::MyResource",
"Properties": {
"ServiceToken": "arn:aws:lambda:SOME-REGION:ACCOUNT:function:FunctionName",
"OtherThing": "foobar",
"AnotherThing": 2
}
}
}
}
有关自定义资源如何工作的更多信息,请参阅AWS文档
代码示例
对于此示例,您需要在Lambda中设置您的处理器为filename.handler,其中filename包含以下内容。
import cfn_resource
# set `handler` as the entry point for Lambda
handler = cfn_resource.Resource()
@handler.create
def create_thing(event, context):
# do some stuff
return {"PhysicalResourceId": "arn:aws:fake:myID"}
@handler.update
def update_thing(event, context):
# do some stuff
return {"PhysicalResourceId": "arn:aws:fake:myID"}
@handler.delete
def delete_thing(event, context):
# do some stuff
return {"PhysicalResourceId": "arn:aws:fake:myID"}
运行测试
安装并运行tox
tox
测试使用mock和pytest,并将提供终端覆盖率报告。目前测试覆盖了(非常小的)代码库的约90%。
许可证
此代码在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分支到Time Out
允许重新调度 - 通过引发新的内置NoResponse异常,资源可以避免向CloudFormation发送任何消息。这是为了支持执行时间超过300秒的Lambda函数,从而进行自我重新调度。
0.2.2 (2016-01-29)
最后版本由RyanSB。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
cfn-resource-timeout-1.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 40a28c845fa956c3d280d5de62e7a2fe1beb345aa4be40e4f27df1eaa6de38f0 |
|
MD5 | 339894e4c35d926683c88bd89726a9ab |
|
BLAKE2b-256 | 8a93b316acc91e040ccc776e2881748de71d5c0d77197a73ab50877706109617 |
cfn_resource_timeout-1.2.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 940288f76e5486432a75457d6f76885ada87ee1b8bec17c87117d8ce936bd25d |
|
MD5 | 0777c8089b42719aa44370be73ce3ef1 |
|
BLAKE2b-256 | 3913e3277073a58252a9cc153e4474c1d693a6ea9ea8120198ed465a245e4ca0 |