以下の領事サービスを登録しています。
curl -s -X GET http://<CONSUL_URL>/v1/catalog/service/myservice | jq .
[
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.28",
"Node": "myservice-one"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.28",
"Node": "myservice-main"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.26",
"Node": "myservice-two"
},
{
"ServicePort": 0000,
"ServiceAddress": "",
"ServiceTags": null,
"ServiceName": "myservice",
"ServiceID": "myservice",
"Address": "10.3.6.27",
"Node": "myservice-three"
}
]
curl -s -X GET http://10.3.6.21:8500/v1/catalog/node/myservice-main | jq .
{
"Services": {
"myservice": {
"Port": 0000,
"Address": "",
"Tags": null,
"Service": "myservice",
"ID": "myservice"
}
},
"Node": {
"Address": "10.3.6.28",
"Node": "myservice-main"
}
}
ここに示すように、myservice サービス内にノード myservice-main があります。myservice-main のアドレスが変更されたときに、特定のものを実行したいと考えています。私はそれを達成するのにconsul watchが役立つことを読みましたが、同じためのcurlコマンドを書くことができません. 私の要件を達成するために使用できるhttp APIを教えてもらえますか? リモートシステムからやりたいので、HTTP API(curl)とシェルスクリプトしか使用できません