跳转到主要内容

EC2标签测试

项目描述

EC2标签条件

CircleCI Coverage Status

这是一个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 (3.6 kB 查看哈希值)

上传时间 Python 3

由支持