Google compute engine 谷歌计算引擎.NETAPI示例/示例/教程
我还没有找到任何东西能够清楚地解释如何通过.NETAPI(特别是c#)使用google计算引擎。有人能给我指点什么吗Google compute engine 谷歌计算引擎.NETAPI示例/示例/教程,google-compute-engine,google-api-dotnet-client,Google Compute Engine,Google Api Dotnet Client,我还没有找到任何东西能够清楚地解释如何通过.NETAPI(特别是c#)使用google计算引擎。有人能给我指点什么吗 另外,我知道API参考()我找不到任何关于代码示例的详细教程,但官方文档可在[1]中找到,其中包括一个代码示例 在[2]中有一个针对Google Drive的C#示例教程 API文档可在[3]上查阅,带注释的库参考可在[4]上查阅 链接: [1] - [2] - [3] - [4] -您需要遵循的步骤列表: 具体来说,您可以修改并使用以下代码来创建Google Compute E
另外,我知道API参考()我找不到任何关于代码示例的详细教程,但官方文档可在[1]中找到,其中包括一个代码示例 在[2]中有一个针对Google Drive的C#示例教程 API文档可在[3]上查阅,带注释的库参考可在[4]上查阅 链接: [1] -
[2] -
[3] -
[4] -
您需要遵循的步骤列表: 具体来说,您可以修改并使用以下代码来创建Google Compute Engine的vmInstance 下面是可以创建实例的c#(使用Google api SDK)函数
UserCredential credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "ClientId",
ClientSecret = "ClientSecret"
},
new[] { ComputeService.Scope.Compute, ComputeService.Scope.CloudPlatform },
"user",
CancellationToken.None, null);
`ComputeService service = new ComputeService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "ApplicationName",
ApiKey = "ApiKey"
});
public IEnumerable<CreateInstanceResult> CreateInstances(params CreateInstanceRequest[] instances)
{
IList<Instance> vmInstances = new List<Instance>();
ComputeService service = assign GoogleComputeServiceObject;
if (instances != null)
{
foreach (CreateInstanceRequest requestInstance in instances)
{
#region Meatadata Setting
Metadata metaData = new Metadata();
metaData.Items = new List<Metadata.ItemsData>();
Metadata.ItemsData itemData = new Metadata.ItemsData();
itemData.Key = "Expiration";
itemData.Value = requestInstance.Expiration.ToString();
metaData.Items.Add(itemData);
itemData = new Metadata.ItemsData();
itemData.Key = "AccountId";
itemData.Value = requestInstance.AccountId;
metaData.Items.Add(itemData);
if (requestInstance.Data != null)
{
foreach (KeyValuePair<string, string> keyValue in requestInstance.Data)
{
Metadata.ItemsData otherItemData = new Metadata.ItemsData();
otherItemData.Key = keyValue.Key;
otherItemData.Value = keyValue.Value;
metaData.Items.Add(otherItemData);
}
}
#endregion Meatadata Setting
#region DiskSetting
IList<AttachedDisk> attachedDisks = new List<AttachedDisk>();
AttachedDisk attachedDisk = new AttachedDisk();
AttachedDiskInitializeParams attachedDiskInitializeParams = new AttachedDiskInitializeParams();
attachedDiskInitializeParams.DiskSizeGb = googleCloudServerSetting.DiskSize;
attachedDiskInitializeParams.DiskType = service.BaseUri + "Your_ProjectId" + "/zones/" + "specifyZone" + "/diskTypes/" + "specify_DiskType";
// for example
attachedDiskInitializeParams.SourceImage = service.BaseUri + "/debian-cloud/global/images/specify_imagesourceImage";
attachedDisk.AutoDelete = true;
attachedDisk.Boot = true;
attachedDisk.Interface__ = "SCSI";//for example
attachedDisk.InitializeParams = attachedDiskInitializeParams;
attachedDisks.Add(attachedDisk);
IList<NetworkInterface> networkInterfaces = new List<NetworkInterface>();
NetworkInterface networkInterface = new NetworkInterface();
networkInterface.Network = service.BaseUri + ProjectId + "/global/networks/default";
networkInterfaces.Add(networkInterface);
Tags tags = new Tags();
IList<string> stringList = new List<string>();
tags.Items = new List<string>();
tags.Items.Add("http-server");
tags.Items.Add("https-server");
#endregion DiskSetting
#region Creating Instance object
Instance instance = new Instance()
{
MachineType = requestInstance.SizeId ?? service.BaseUri + "ProjectId" + "/zones/" + "specify_Zone" + "/machineTypes/" + "specify_machineType",
Metadata = metaData,
Name = "InstanceName",
Tags = tags,
NetworkInterfaces = networkInterfaces,
Disks = attachedDisks
};
#endregion Creating Instance object
vmInstances.Add(instance);
}
var batchRequest = new BatchRequest(service);
foreach (Instance instance in instances)
{
batchRequest.Queue<Instance>(service.Instances.Insert(instance, ProjectId, Zone),
(content, error, i, message) =>
{
});
}
await batchRequest.ExecuteAsync();
}
else
{
throw new Exception("null");
}
}
UserCredential credential=wait GoogleWebAuthorizationBroker.AuthorizationAsync(
新客户的秘密
{
ClientId=“ClientId”,
ClientSecret=“ClientSecret”
},
新[]{ComputeService.Scope.Compute,ComputeService.Scope.CloudPlatform},
“用户”,
CancellationToken.None,null);
`ComputeService=new ComputeService(new BaseClientService.Initializer())
{
HttpClientInitializer=凭证,
ApplicationName=“ApplicationName”,
ApiKey=“ApiKey”
});
公共IEnumerable CreateInstances(参数CreateInstanceRequest[]实例)
{
IList vmInstances=新列表();
ComputeService服务=分配Google ComputeService对象;
if(实例!=null)
{
foreach(实例中的CreateInstanceRequestInstance)
{
#肉田环境区
元数据=新元数据();
metaData.Items=新列表();
Metadata.ItemsData itemData=新的Metadata.ItemsData();
itemData.Key=“过期”;
itemData.Value=requestInstance.Expiration.ToString();
元数据.Items.Add(itemData);
itemData=新元数据。ItemsData();
itemData.Key=“AccountId”;
itemData.Value=requestInstance.AccountId;
元数据.Items.Add(itemData);
if(requestInstance.Data!=null)
{
foreach(requestInstance.Data中的KeyValuePair keyValue)
{
Metadata.ItemsData otherItemData=新的Metadata.ItemsData();
otherItemData.Key=keyValue.Key;
otherItemData.Value=keyValue.Value;
metaData.Items.Add(otherItemData);
}
}
#端部肉塔设置
#区域磁盘设置
IList attachedDisks=新列表();
AttachedDisk AttachedDisk=新的AttachedDisk();
AttacheDdiskinInitializeParams AttacheDdiskinInitializeParams=新的AttacheDdiskinInitializeParams();
attachedDiskInitializeParams.DiskSizeGb=googleCloudServerSetting.DiskSize;
attachedDiskInitializeParams.DiskType=service.BaseUri+“您的项目”+“/zones/”+“SpecifyOne”+“/diskTypes/”+“specify_DiskType”;
//比如说
attachedDiskInitializeParams.SourceImage=service.BaseUri+“/debian cloud/global/images/specify_imagesourceImage”;
attachedisk.AutoDelete=true;
attachedisk.Boot=true;
attachedisk.Interface\uu=“SCSI”//例如
attachedDisk.InitializeParams=attachedDiskInitializeParams;
添加(attachedDisk);
IList networkInterfaces=新列表();
NetworkInterface NetworkInterface=新的NetworkInterface();
networkInterface.Network=service.BaseUri+ProjectId+“/global/networks/default”;
networkInterfaces.Add(networkInterface);
标签=新标签();
IList stringList=新列表();
tags.Items=新列表();
tags.Items.Add(“http服务器”);
tags.Items.Add(“https服务器”);
#端域磁盘设置
#区域创建实例对象
实例实例=新实例()
{
MachineType=requestInstance.SizeId??service.BaseUri+“ProjectId”+“/zones/”+“指定”\u Zone“+”/MachineType/“+”指定\u MachineType”,
元数据=元数据,
Name=“InstanceName”,
标签=标签,
网络接口=网络接口,
磁盘=附件磁盘
};
#endregion创建实例对象
vmInstances.Add(实例);
}
var batchRequest=新的batchRequest(服务);
foreach(实例中的实例)
{
batchRequest.Queue(service.Instances.Insert(实例、项目、区域),
(内容、错误、i、消息)=>
{
});
}
等待batchRequest.ExecuteAsync();
}
其他的
{
抛出新异常(“null”);
}
}