5

環境内のサービスを検出するためにconsulを使用しています。Consul の DNS サービスは、非標準の DNS ポートで実行されています。私の現在の解決策は回避策であり、これを行うためのよりpythonicな方法を見つけたいと思います:

digcmd='dig @127.0.0.1 -p 8600 chef.service.consul +short' # lookup the local chef server via consul
proc=subprocess.Popen(shlex.split(digcmd),stdout=subprocess.PIPE)
out, err=proc.communicate()
chef_server = "https://"+out.strip('\n')
4

2 に答える 2

2

次のように HTTP API を呼び出すのも非常に簡単urllib.requestです。

import urllib.request

answer = urllib.request.urlopen("http://localhost:8500/v1/catalog/service/chef").read()

HTTP API の基本は、サービス ガイドに記載されています。

于 2014-10-14T18:26:10.327 に答える