[AWS][Python]使用Python自动生成CloudFormation等实现批量自动化部署AWS Canaries
需求
业务需要,想要监控一些API Endpoints(部分在AWS内网)。工具选型可参看[AWS][Elasticsearch]API Synthetics
Monitoring工具的简单比较 [https://hanzhu.dev/api-synthetics-monitoring/]。最后选择的是AWS
Cloudwatch Synthetics。用ApiCanaries探测,并且就success
rate和duration两个metrics设置报警阈值,通知SNS。希望使用CloudFormation来Codify整个过程。
任务拆解与分析
Canary的实现
经过对手动生成的Canary的观察,发现Canary是借由lambda实现的,在console手动添加Canary后,会生成一个js的canary
lambda, 而另一个相关配置的canary script (也是js, 可以自动生成或者自己写)会以layer的形式加载在js canary
lambda之上,让js canary lambda来call它。
// Call customer's execution