如何使用谷歌计算引擎REST API创建虚拟机

时间:2015-03-21 15:58:22

标签: c# rest google-api google-compute-engine

我是Google Compute Engine的新手。有人请帮助我使用C#中的REST API以编程方式创建Google Compute Engine VM。

1 个答案:

答案 0 :(得分:1)

这里[1]你可以找到API文档来创建一个实例,在文档的底部有C#例子[2]:

using Google.Apis.Auth.OAuth2;
using Google.Apis.Compute.v1;
using Google.Apis.Services;
using Newtonsoft.Json;
using System;
using System.Threading.Tasks;

using Data = Google.Apis.Compute.v1.Data;

namespace ComputeSample
{
    public class ComputeExample
    {
        public static void Main(string[] args)
        {
            ComputeService computeService = new ComputeService(new BaseClientService.Initializer
            {
                HttpClientInitializer = GetCredential(),
                ApplicationName = "Google-ComputeSample/0.1",
            });

            // Project ID for this request.
            string project = "my-project";  // TODO: Update placeholder value.

            // The name of the zone for this request.
            string zone = "my-zone";  // TODO: Update placeholder value.

            // TODO: Assign values to desired properties of `requestBody`:
            Data.Instance requestBody = new Data.Instance();

            InstancesResource.InsertRequest request = computeService.Instances.Insert(requestBody, project, zone);

            // To execute asynchronously in an async method, replace `request.Execute()` as shown:
            Data.Operation response = request.Execute();
            // Data.Operation response = await request.ExecuteAsync();

            // TODO: Change code below to process the `response` object:
            Console.WriteLine(JsonConvert.SerializeObject(response));
        }

        public static GoogleCredential GetCredential()
        {
            GoogleCredential credential = Task.Run(() => GoogleCredential.GetApplicationDefaultAsync()).Result;
            if (credential.IsCreateScopedRequired)
            {
                credential = credential.CreateScoped("https://www.googleapis.com/auth/cloud-platform");
            }
           return credential;
        }
    }
}

[1] https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert [2] https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert#examples