订阅GCE自动缩放组中的实例列表更新



是否有方法获取/订阅GCE自动缩放组中的/for-running实例列表
通过gcloud工具,我们可以定期调用列表,但我想订阅列表更新。我怀疑目前在GCE中是否有这样的API实现(除了项目元数据(,但我需要在我的应用程序中拥有这样的功能,这样我就可以为此编写逻辑
也许有人经历过类似的案件,或者知道这方面的"黑客"?

据我所知,没有任何方法可以订阅托管实例组中的实例列表。

您需要手动轮询托管实例组以确定当前实例的列表。

gcloud compute instance-groups managed list <NAME>

这是一项在云功能中可以非常容易地完成的任务。以固定的时间间隔扫描小组,并通过电子邮件向您发送Json中的列表。可能性是无穷的。

您可以使用(1(pubsub主题"实例组更改"和(2(在启动&关闭脚本。

(1( 创建"实例组更改"主题

gcloud init
gcloud pubsub topics create instance-group-changes

(2( 修改实例组的启动脚本以发送addInstance事件

注意:一定要在实例模板中添加"cloud-pubsub-api访问范围">

使用元数据服务获取实例id、主机名等。

TOPIC=instance-group-changes
instance_id=`curl -s  http://metadata.google.internal/0.1/meta-data/instance-id`
gcloud pubsub topics publish "$TOPIC" 
--attribute 'event=addInstance' 
--message "instance_id=$instance_id"

(3( 修改关闭脚本以发送removeInstance事件

TOPIC=instance-group-changes
instance_id=`curl -s http://metadata.google.internal/0.1/meta-data/instance-id`
gcloud pubsub topics publish "$TOPIC" 
--attribute 'event=removeInstance' 
--message "instance_id=$instance_id"

测试

创建订阅

gcloud pubsub subscriptions create sub-instance-group-changes --topic=instance-group-changes

从订阅中提取

gcloud pubsub subscriptions pull --limit  5 sub-instance-group-changes
┌─────────────────────────────────┬─────────────────┬──────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│               DATA              │    MESSAGE_ID   │      ATTRIBUTES      │                                                                               ACK_ID                                                                               │
├─────────────────────────────────┼─────────────────┼──────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│
│ instance_id=5396233750823583338 │ 407816607936940 │ event=addInstance    │ XkASTD4HRElTK0MLKlgRTgQhIT4wPkVTRFAGFixdRkhRNxkIaFEOT14jPzUgKEUaC1MTUVx1Hk4Qb1gzdQdRDRlze2hxO1kaAFMTUHRdURsfWVx-SgNRChFze2d1bVMQBwtBU1b55f_L9q0zZhs9XBJLLD5-NTJFQQ │
│ instance_id=5396233750823583338 │ 407816742842477 │ event=removeInstance │ XkASTD4HRElTK0MLKlgRTgQhIT4wPkVTRFAGFixdRkhRNxkIaFEOT14jPzUgKEUaC1MTUVx1Hk4Qb1gzdQdRDRlze2hxO1kaAFMTUHRcURsfWVx-SgNRChFze2ZxaFIXAwZCVFb55f_L9q0zZhs9XBJLLD5-NTJFQQ │

最新更新