使用python lambda函数实现自定义aws云信息资源。

custom_resource的Python项目详细描述


使用python lambda函数实现custom AWS CloudFormation resources

这有助于您在cloudformation中引用非aws资源-例如, 让我们在堆栈中获取statuscake警报:

Type:Custom::StatusCakeTestVersion:1.0Properties:WebsiteName:vitalwebsite.comWebsiteURL:http://vitalwebsite.comCheckRate:300TestType:HTTP

(作为练习留给读者的实现)

另请参见

  • examples目录中的示例代码。
  • AWS docs

lambda处理程序

这里有一个简单的资源:

fromcustom_resourceimportBaseHandlerclassHandler(BaseHandler):defcreate(self,event,context):return"CreatedId",{"AndSome":"MetaData"}defupdate(self,event,context):return"UpdatedId",{"AndSome":"MetaData"}defdelete(self,event,context):return"DeletedId",{"AndSome":"MetaData"}handler=Handler()

我们扩展了BaseHandler类,并实现了createupdatedelete方法所有这些方法都是必需的。

方法必须是:

  • 返回一个表示资源ID的字符串。可以在 您的CFN模板通过Ref function
  • 返回一个资源ID字符串和一个包含键字符串的dict 和价值观。这些键/值对可以与GetAtt function一起使用。
  • 返回custom_resource.Successcustom_resource.Failed 反对。
  • 返回一个custom_resource.Defer对象,表示您将处理 这是异步的请参见下面的async responses
  • 提出一个例外

BaseHandler将响应cloudformation,除非Defer是 返回。

异步响应

您的Handler方法可以返回Defer来表示异步 处理。

要稍后响应,您需要原始event对象的副本这个 将传递给Responder类,例如:

withResponder(event)asresponder:responder.success(physical_resource_id="123",data={"Meta":"Data"})# orresponder.failure(physical_resource_id="456",reason="Something went wrong")

使用with,您的资源将始终响应cloudformation,甚至 异常时-确保堆栈不会停止并最终超时

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何运行一个在播放歌曲的同时创建和更改UI的方法?   eclipse错误:无法找到或加载主类Java,因为类文件anme和类名不同?   两个数字相加得到一个值的java算法   java我可以更改字符串吗?   java Hibernate 5.2:以编程方式从其他jar加载映射   java如何访问随机跳转到固定位置的二进制文件   java是解析器实现中文档的功能   Javasocket的两端齐平   java查找将两个非常大的整数之和除以相等块的步骤   java如何在Restlet中调用带超时的异步HTTP客户端   java如何从servlet请求将hashmap传递给jsp。塞塔提布特   java Spring MVC HTTP状态500–内部服务器错误,Servlet。servlet[dispatcher]的init()引发异常   java即使没有alpha通道,如何将PNGFiles加载为ARGB_8888?   java将subscribe的返回类型映射到其他类型   javascript如何在安卓 WebView中启用longpress操作下载图像?   java将字符串作为hashmap值的一部分添加到StringList中   JavaSpringAOP:代表类型声明其他方法或字段   Java将二进制序列转换为字符   java使用ApachePOI获取最后一行值   为什么要在FPS(每秒帧数)跟踪器中添加时间?(爪哇)