Я пытаюсь программно запустить экземпляры GCE из C # / REST API (т.е. не используя gcloud или консоль). Эти экземпляры должны иметь значения (определяющие, кто их запустил, поэтому они будут разными для каждого экземпляра), передаваемые им во время запуска, которые затем передаются различным приложениям, работающим в них. Очевидный способ добавления переменных среды в запрос GCE не представляется возможным, так как же обеспечить динамическую настройку?
Мой текущий код для создания экземпляров, который работает нормально:
public void CreateInstance(string name)
{
var credentials = GoogleCredential.GetApplicationDefault().CreateScoped(ComputeService.Scope.Compute);
var service = new ComputeService(new BaseClientService.Initializer
{
HttpClientInitializer = credentials,
ApplicationName = "Spin-up"
});
var spec = new Google.Apis.Compute.v1.Data.Instance
{
Name = name
};
var instanceTemplate = service.InstanceTemplates.Get(GCloudConfig.ProjectName, GCloudConfig.TemplateName).Execute();
var insertRequest = service.Instances.Insert(spec, GCloudConfig.ProjectName, GCloudConfig.Region);
insertRequest.SourceInstanceTemplate = instanceTemplate.SelfLink;
insertRequest.Execute();
}