EC2标签测试
项目描述
EC2标签条件
这是一个python库和shell命令,用于回答以下问题:
"这个实例是否带有指定的标签以及具有指定的值?"
它设计用于在AWS的EC2实例上运行。
如果它不在AWS上,它将始终失败,因此标签应该只测试其真值,而不是假值。
作为库
from ec2_tag_conditional import InstanceTags
tags = InstanceTags()
if tags['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任务可以写成以下形式:
实例标签 "controller=True" && do_controller_only
或者对于生产环境中的控制器(而不是开发或预发布环境)
实例标签 "controller=True" && 实例标签 "Env=prod" && do_controller_only
因为如果实例上找不到给定值的标签,则instance-tags
脚本的退出码为1,所以脚本不会在任何不是具有给定值的EC2实例的服务器上运行。
项目详情
关闭
ec2_tag_conditional-0.1.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d3f9c273a7f5c8af05a7dfec3e4c8b4a18435390dbd309c8934096a2bef57ded |
|
MD5 | 573d37259b7542eb8326738917721f25 |
|
BLAKE2b-256 | 6eb7416d97784625acbb64b7d9855fbcf25b13299138c51c265b2eedb2ed9409 |