跳转到主要内容

用于构建CloudFormation自定义资源的包装装饰器

项目描述

cfn-resource-timeout

本项目是一个装饰器和验证系统,可简化自定义资源的编写工作。您仍可以像往常一样访问上下文和事件,但装饰器将处理您的响应序列化和将结果传递给CloudFormation。

如果您想使用Node.js编写自定义资源,请参阅Andrew Templeton的cfn-lambda

使用方法

  1. cfn_resource.py复制到您的lambda函数目录中的handler.py,可以通过使用pip来完成此操作。

  2. 使用cfn_resource.Resource事件装饰器来装饰您的处理器,如example.py中的示例所示

  3. 将内容压缩并上传到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

测试使用mockpytest,并将提供终端覆盖率报告。目前测试覆盖了(非常小的)代码库的约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)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

cfn-resource-timeout-1.2.0.tar.gz (5.1 kB 查看哈希值)

上传时间

构建分布

cfn_resource_timeout-1.2.0-py2.py3-none-any.whl (6.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面