通过具有环境变量的客户端API启动GCE实例

时间:2019-05-10 11:21:27

标签: c# google-cloud-platform google-compute-engine

我正在尝试以编程方式从C#/ REST API启动GCE实例(即不使用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 :(得分:0)

您可以使用Compute Engine方法的API:instances.start或instances.stop来触发具有C#代码请求的VM实例的启动或停止。

有关这些API方法的其他信息在文档instances.start中进行了描述。和instances.stop