Я хотел бы создать управляемую группу 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
Успех! Значение было изменено, или вы достигли указанного времени ожидания, и запрос был успешно возвращен.