当诸如 EC2、RDS、RedShift 等资源状态发生改变时(如新建,修改等),可为其自动打上 Tag,标明其被改变的信息。
本仓库中列举了部分常用资源的 Lambda 函数样例代码。在资源被创建时为其打上形如 {Owner:资源创建者,Principad:事件 ID} 的 Tag。
此外,在各个服务的独立代码目录中还记录了 CloudWatch 监测到的事件样例返回信息( Json 文件),作为修改代码逻辑时的参考信息。
在 CloudTrail 中会记录大多数 API 操作,并标记为一个个事件,通过CloudWatch 可以通过设置规则来监听这些事件。
当事件发生时可以选择触发一个 Lambda 函数,依靠这个 Lambda 函数,我们可以针对这个事件执行各种操作。
注意
- 在创建 Lambda 函数时,保证 Lambda 函数的 角色(Role)同时拥有操作 Lambda 函数与对应资源的权限。
- 大多数资源的 API 都可以在 AWS 文档 找到。但是,特别的,Lambda 在 CloudTrail 中记录的 API 名称与Lambda 文档中并不一致。在 Lambda 样例代码中给出了部分常用VPC API 名称。
- 向 S3 中上传文件在默认状态下不会被 CloudTrail 记录,需要手动开启,参考使用 AWS CloudTrail 数据事件为 S3 存储桶启用对象级别日志记录。
- 若需对代码功能进行修改,建议先在各个服务的独立代码目录中阅读代码信息。
AWS EC2/EBS/Snapshot/AMI等资源自动打Tag方案
AWS-All-Services-Auto-Tag AWS All Services Auto Tag
整合后的代码文件,可在一份代码中为多个资源设置 Tag
-
AWS-EC2-Auto-Tag AWS EC2/EBS/Image/Snapshot Auto Tag
单独为 EC2, EBS, Image, Snapshot设置 Tag 及 EC2 在 CloudWatch 中监测到的事件信息
-
AWS-VPC-Auto-Tag Refer AWS EC2 Auto Tag
单独为 VPC 设置 Tag 及 VPC 在 CloudWatch 中监测到的事件信息
-
AWS-RDS-Auto-Tag Refer AWS EC2 Auto Tag
单独为 RDS 设置 Tag 及 RDS 在 CloudWatch 中监测到的事件信息
-
AWS-S3-Auto-Tag Refer AWS EC2 Auto Tag
单独为 S3 设置 Tag 及 S3 在 CloudWatch 中监测到的事件信息。
特别的,分为对 S3 的桶(bucket) 设置 Tag 以及对 S3 中的 对象(Object) 设置 Tag
-
AWS-DynamoDB-Auto-Tag Refer AWS EC2 Auto Tag
单独为 DynamoDB 设置 Tag 及 DynamoDB 在 CloudWatch 中监测到的事件信息
-
AWS-Redshift-Auto-Tag Refer AWS EC2 Auto Tag
单独为 RedShift 设置 Tag 及 RedShift 在 CloudWatch 中监测到的事件信息
-
AWS-SQS-Auto-Tag Refer AWS EC2 Auto Tag
单独为 SQS 设置 Tag 及 SQS 在 CloudWatch 中监测到的事件信息
-
AWS-Lambda-Auto-Tag Refer AWS EC2 Auto Tag
单独为 Lambda 设置 Tag 及 Lambda 在 CloudWatch 中监测到的事件信息