此刻,我们每分钟都打电话给cloudfront.listDistributions()
,以确定我们正在部署的发行状态的变化。这会导致Lambda超时,因为CloudFront的部署时间不会超过30分钟(15分钟后Lambda超时)。
我想成功创建CloudFront分配后通知Lambda函数。这将使我们能够执行创建后的操作,同时节省宝贵的Lambda执行时间。
在CloudWatch上创建规则不提供选择CloudFront的选项。尽管如此,它似乎接受使用源aws.cloudformation
创建自定义事件模式。
考虑选项:
有人想克服AWS缺乏的功能吗?
答案 0 :(得分:0)
如果您愿意并有时间,可以利用CloudTrail进行更复杂的解决方案。
免责声明
CloudTrail不是实时日志系统,但请确保所有API调用将在15分钟内在控制台上报告(如CloudTrail FAQs下所述)。因此,以下内容仅对长期运行的任务有意义,例如创建CloudFront发行版,占用Aurora数据库等。
您可以创建基于CloudWatch事件的规则(我们称其为 CW-r1 ) 按照特定的模式,例如 CreateDistribution 或 UpdateDistribution 。
CW-r1触发Lambda( LM-1 ),该Lambda启用另一个CloudWatch 事件基础规则(CW-r2)。
CW-r2在计划的基础上触发通过API的Lambda(LM-2) 请求特定分配状态。一旦分配是 例如,“已部署” LM-2可以通过SNS发送通知(您可以 发送EMAIL,SMS,推送通知,无论SNS支持什么。
一旦一切完成,LM-2可以按顺序禁用CW-r2规则 停止处理信息。
通过这种方式,您可以基于所需的API调用来建立自动通知系统。