EC2标签测试
ec2_tag_conditional的Python项目详细描述
EC2标记条件
这是一个python库和shell命令,可以回答以下问题:
“此实例是否用给定的标记标记并具有给定的值”
它被设计为在aws的ec2实例上运行。
如果它不在AWS上,它总是会失败,所以标签应该只测试 真实,而不是虚假。
作为库
fromec2_tag_conditionalimportInstanceTagstags=InstanceTags()iftags['Env']=='prod':do_prod_thing()else:do_other_thing()
作为命令行脚本
> instance-tags "Env=prod" > echo$?0 > instance-tags "Madeup=NotThere" > echo$?1 > instance-tags "Env=prod"&& do_prod_thing
示例用例
编写此代码时考虑了以下用例:
在自动缩放组中有n
个服务器,从自定义
AMI(金像奖)。在上运行的应用程序的性质
服务器是指,为了使某些功能(备份、报告)正常工作,
给定的一组任务只能由一台服务器运行。
此服务器称为“控制器”。创建ASG的脚本
同时(在aws元数据中)标记一个(并且只有一个)服务器
用controller=True
。
当AMI被烘焙时,图像不需要知道它们是否是 控制器与否,因为cron任务可以编写为:
instance-tags "controller=True" && do_controller_only
或用于生产中的控制器(而不是开发或登台 环境):
instance-tags "controller=True" && instance-tags "Env=prod" && do_controller_only
因为如果标签,^ {CD5>}脚本的退出代码为1 如果在实例上找不到给定的值,则脚本不会 在任何不是具有给定值的ec2实例的服务器上运行。