Запустить экземпляр GCE через клиентский API с переменной среды - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь программно запустить экземпляры 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();
    }   

1 Ответ

0 голосов
/ 13 мая 2019

Вы можете использовать API для метода вычислительного механизма: instances.start или instances.stop, чтобы инициировать запуск или остановку экземпляров виртуальных машин с запросами кода C #.

Дополнительная информация об этих методах API описана в документах: instances.start . и instances.stop .

...