В API экземпляров вычислительного механизма GCP, как работает SetMetadata, чтобы уведомить экземпляр виртуальной машины о запуске недавно добавленного сценария запуска?

# #c# #asp.net #google-cloud-platform #google-compute-engine

Вопрос:

Я пользуюсь Гуглом.Облако.Вычислять.Клиентская библиотека V1 для записи функции в службе, которая создает экземпляр виртуальной машины в GCP Compute Engine. После этого функция выполняет еще несколько вычислений, прежде чем вызвать SetMetadataAsync для добавления сценария запуска под ключом windows-startup-script-ps1. Мой код примерно выглядит следующим образом:

 // There's code above here that creates an Instance object
await machineClient.InsertAsync(ProjectId, Zone, instance, cancellationToken);
// Some other code that doesn't call GCP Compute Engine
instance = await machineClient.GetAsync(ProjectId, Zone, instance.Name, cancellationToken);
var metadata = new Metadata
{
    Fingerprint = instance.Metadata.Fingerprint,
    Items = 
    {
        new Items
        {
            Key = "windows-startup-script-ps1",
            Value = string.Join('n', script) //script is a list of strings
        }
    }
};

await machineClient.SetMetadataAsync(PProjectId, Zone, instance.Name, metadata, cancellationToken);
 

Мой код работает, сценарий запуска выполняется и устанавливает необходимое программное обеспечение. Итак, как работает вычислительный механизм GCP, позволяющий немедленно выполнять этот сценарий после вставки? Или, более конкретно, где в жизненном цикле экземпляра выполняется сценарий запуска? Каковы механизмы запуска сценария запуска для только что созданной машины.