未知
consul-announcer的Python项目详细描述
为Consul服务的播音员。
功能:
- 使用支票注册/注销服务
- 生成子流程
- 定期将所有TTL检查标记为通过(如果有)
安装
常规使用:
pip install consul-announcer # or add it as a requirement
用法
consul-announcer --config="JSON or @path"[-h][--agent=hostname[:port]][--token=acl-token][--interval=seconds][--verbose] -- command[arguments] Arguments: -h, --help Show this help message and exit. --agent hostname[:port] Consul agent address: hostname[:port]. Default: localhost (default port is 8500). You can also use CONSUL_ANNOUNCER_AGENT env variable. --config "JSON or @path" Consul configuration JSON (required). If starts with @ - considered as file path. You can also use CONSUL_ANNOUNCER_CONFIG env variable. --token acl-token Consul ACL token. You can also use CONSUL_ANNOUNCER_TOKEN env variable. --interval seconds Interval for periodic marking all TTL checks as passed, in seconds. Should be less than min TTL. You can also use CONSUL_ANNOUNCER_INTERVAL env variable. --verbose, -v Verbose output. You can specify -v or -vv.
最少使用量:
consul-announcer --config=@path/to/config.json -- some-process --with --arguments
--config
它应该是包含{"service": {...}}或{"services": [...]}:
consul-announcer --config='{"service": {"name": "test service", "check": {"ttl": "10s"}}}' -- ...
如果以@开头,则视为文件路径:
consul-announcer --config=@path/to/config.json -- ...
阅读Consul docs about services definition。
所有服务和检查将在进程启动时注册,并在进程终止时注销。
也可以使用CONSUL_ANNOUNCER_CONFIGenv变量。
--interval
在上面的例子中,没有指定间隔,因此它将被计算为最小ttl/10(如果在配置中指定了ttl检查)。但您可以提供自己的值(秒):
consul-announcer --interval=3 ...
如果没有ttl检查并且没有--interval-则会引发错误。
也可以使用CONSUL_ANNOUNCER_INTERVALenv变量。
--address
默认代理地址是localhost(带有默认端口8500)。您可以自己提供:
consul-announcer --agent=1.2.3.4:5678 ...
也可以使用CONSUL_ANNOUNCER_AGENTenv变量。
--token
执政官ACL令牌。仅在您已在领事馆代理中启用ACL时才需要。
consul-announcer --token=01234567-89ab-cdef-0123-456789abcdef ...
也可以使用CONSUL_ANNOUNCER_TOKENenv变量。
^ {tt15}$
输出电平:
- 默认情况下,只打印错误和警告
- -v将显示信息消息
- -vv将显示信息和调试消息
在python代码中的用法
fromannouncer.serviceimportServiceservice=Service('localhost:1234','@/path/to/config.json',['sleep','5'],'01234567-89ab-cdef-0123-456789abcdef',0.5)service.run()
开发
安装
git clone <this-repo>
cd consul-announcer
pip install -r requirements/test.txt -e .
测试
测试配置在tox.ini文件中定义,包括py.test测试和flake8源代码检查器。您可以运行所有测试:
python setup.py test
只运行py.test测试,而不是flake8,并重新使用当前的virtualenv:
py.test
释放
- 测试必须通过
- 不要忘记测试所有新增功能
- 用发布信息更新CHANGELOG。
- 更新README(如有必要)
- 提交所有更改
- 创建新版本标记(例如):v1.2.3
- 推送提交和标记
- 在pypi上发布新版本