跳转到主要内容

Consul服务发现和配置系统的客户端库

项目描述

Consulate是Consul服务发现和配置系统的Python客户端库和应用集。

Version Downloads Status Coverage License

安装

Consulate可通过pypi获取,并可以使用easy_install或pip进行安装

pip install consulate

如果您需要通过Unix套接字与Consul通信,有额外的依赖项需要通过

pip install consulate[unixsocket]

命令行工具

Consulate附带两个命令行工具,使从管理角度使用Consul变得更加容易。应用consulate提供了对常见任务的CLI包装。

应用passport已被移至独立应用,并在https://github.com/gmr/passport提供。

consulate

consulate应用提供了注册服务、备份和恢复KV数据库内容以及从KV数据库获取、设置和删除键的CLI接口。

usage: consulate [-h] [--api-scheme API_SCHEME] [--api-host API_HOST]
                 [--api-port API_PORT] [--datacenter DC] [--token TOKEN]
                 {register,deregister,kv,run_once} ...

CLI utilities for Consul

optional arguments:
  -h, --help            show this help message and exit
  --api-scheme API_SCHEME
                        The scheme to use for connecting to Consul with
  --api-host API_HOST   The consul host to connect on
  --api-port API_PORT   The consul API port to connect to
  --datacenter DC       The datacenter to specify for the connection
  --token TOKEN         ACL token

Commands:
  {register,deregister,kv,run_once}
    register            Register a service for this node
    deregister          Deregister a service for this node
    kv                  Key/Value Database Utilities
    run_once            Lock command

If the CONSUL_RPC_ADDR environment variable is set, it will be parsed and used
for default values when connecting.

服务注册帮助

usage: consulate register [-h] [-a ADDRESS] [-p PORT] [-s SERVICE_ID]
                          [-t TAGS]
                          name {check,httpcheck,no-check,ttl} ...

positional arguments:
  name                  The service name

optional arguments:
  -h, --help            show this help message and exit
  -a ADDRESS, --address ADDRESS
                        Specify an address
  -p PORT, --port PORT  Specify a port
  -s SERVICE_ID, --service-id SERVICE_ID
                        Specify a service ID
  -t TAGS, --tags TAGS  Specify a comma delimited list of tags

Service Check Options:
  {check,httpcheck,no-check,ttl}
    check               Define an external script-based check
    httpcheck           Define an HTTP-based check
    no-check            Do not enable service monitoring
    ttl                 Define a duration based TTL check

KV数据库工具帮助

usage: consulate kv [-h] {backup,restore,ls,mkdir,get,set,rm} ...

optional arguments:
  -h, --help            show this help message and exit

Key/Value Database Utilities:
  {backup,restore,ls,mkdir,get,set,rm}
    backup              Backup to stdout or a JSON file
    restore             Restore from stdin or a JSON file
    ls                  List all of the keys
    mkdir               Create a folder
    get                 Get a key from the database
    set                 Set a key in the database
    rm                  Remove a key from the database

锁定操作帮助

usage: consulate [-h] run_once [-i INTERVAL] prefix command

positional arguments:
  prefix                the name of the lock which will be held in Consul.
  command               the command to run

optional arguments:
  -h, --help            show this help message and exit
  -i, --interval        hold the lock for INTERVAL seconds

API使用示例

以下示例突出了Consulate的使用,但并未记录完整Consulate API的范围。

使用Consulate与Consul kv数据库

consul = consulate.Consul()

# Set the key named release_flag to True
consul.kv['release_flag'] = True

# Get the value for the release_flag, if not set, raises AttributeError
try:
    should_release_feature = consul.kv['release_flag']
except AttributeError:
    should_release_feature = False

# Delete the release_flag key
del consul.kv['release_flag']

# Find all keys that start with "fl"
consul.kv.find('fl')

# Find all keys that start with "feature_flag" terminated by "/" separator
consul.kv.find('feature_flag', separator='/')

# Check to see if a key called "foo" is set
if "foo" in consul.kv:
    print 'Already Set'

# Return all of the items in the key/value store
consul.kv.items()

使用Consulate.agent API

consul = consulate.Consul()

# Get all of the service checks for the local agent
checks = consul.agent.checks()

# Get all of the services registered with the local agent
services = consul.agent.services()

# Add a service to the local agent
consul.agent.service.register('redis',
                               port=6379,
                               tags=['master'],
                               ttl='10s')

从Consul获取健康信息

consul = consulate.Session()

# Get the health of a individual node
health = consul.health.node('my-node')

# Get all checks that are critical
checks = consul.heath.state('critical')

有关更多示例,请参阅Consulate文档。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

consulate-0.6.0.tar.gz (21.6 kB 查看哈希值)

上传时间

构建分发

consulate-0.6.0-py2-none-any.whl (25.8 kB 查看哈希值)

上传时间 Python 2

支持