Имя подписки Google PubSub для нескольких виртуальных машин? - PullRequest
0 голосов
/ 09 января 2019

Я хотел бы создать управляемую группу Compute Engine с некоторыми сценариями запуска, включая сценарий, который создает подписку на уведомление об изменении объекта. Следуя этим учебникам , для всех этих подписок требуется "subscription_name".

Я не могу установить для него статическое имя, так как оно вызовет конфликты, когда> 1 ВМ вращается.

Существует ли способ автоматического «увеличения» имени, т. Е. «VM_sub_1», «VM_sub_2», «VM_sub_3» ... и т. Д .?

Или оставить это поле пустым и принимать случайно сгенерированные имена - единственный способ избежать столкновений?

Пример кода для создания подписки:

def create_push_subscription(project_id, topic_name, subscription_name, endpoint):
"""Create a new push subscription on the given topic."""
# [START pubsub_create_push_subscription]
from google.cloud
import pubsub_v1
project_id = "bucketcfpubsub"
topic_name = "bucketcfpubsub"
subscription_name = "VM_sub_1"
endpoint = "https://bucketcfpubsub.appspot.com/push"
subscriber = pubsub_v1.SubscriberClient()
topic_path = subscriber.topic_path(project_id, topic_name)
subscription_path = subscriber.subscription_path(project_id, subscription_name)

push_config = pubsub_v1.types.PushConfig(push_endpoint = endpoint)
subscription = subscriber.create_subscription(subscription_path, topic_path, push_config)
print('Push subscription created: {}'.format(subscription))
print('Endpoint for subscription is: {}'.format(endpoint))#[END pubsub_create_push_subscription]

Попытка получения метаданных:

def check_instance():
    import time
    import requests

    METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/instance/id'
    METADATA_HEADERS = {'Metadata-Flavor': 'Google'}

    instance_id = requests.get(METADATA_URL, headers=METADATA_HEADERS)

    print(instance_id)

check_instance()

возвращает

Ответ [200]

meanning

Успех! Значение было изменено, или вы достигли указанного времени ожидания, и запрос был успешно возвращен.

...