我已经通过c#中的Fluent API类在Azure门户上创建了虚拟机。 我的C#代码是:
public JsonResult createVM()
{
try
{
IAzure azure = Authenticate(subscriptionId);
azure.VirtualMachines.Define(vmName)
.WithRegion(location)
.WithExistingResourceGroup(ResourceGroupName)
.WithExistingPrimaryNetworkInterface(networkInterface)
.WithSpecializedOSDisk(managedDisk, operatingSystem)
.WithSize(vmSize)
.Create();
//Here i want complete response from above code..if success.
return Json(string.Empty);
}
catch (CloudException ex)
{
Response.Write(ex.Response.Content);
return Json(string.Empty);
}
}
如果执行失败,我会在catch块中获得响应。 但是如果执行成功,我们需要响应。
答案 0 :(得分:0)
将Azure VM创建代码段分配给var。检查var是否不为null。如果是,则虚拟机创建成功。如果出现异常,您显然可以转到catch块。并且,如果需要,您可以像在此unit test中一样验证新创建的VM对象的任何属性。
答案 1 :(得分:0)
由于使用的是Azure管理库来创建Azure VM,因此SDK会自动将所有成功的响应都转换为IVirtualMachine
,因此您只需访问IVirtualMachine
实例即可检索所需的所有属性直接访问原始HTTP响应的百分比。
您可以按照here下的PrintVirtualMachine(IVirtualMachine virtualMachine)
检索所需的属性,并构建一个包含VM属性的新匿名类,然后按如下所示将其返回给客户端:
return Json(new
{
ComputerName = linuxVM.ComputerName,
PowerState = linuxVM.PowerState,
ProvisioningState = linuxVM.ProvisioningState
.
.
});
我不明白您为什么要原始的HTTP响应。但是,如果您仍然坚持只获取纯HTTP响应,则需要遵循Aravind提出的建议,以便您自己通过相关授权显式发送REST API Virtual Machines - Create Or Update。对于身份验证,您可以按照Authentication API to access subscriptions注册您的AAD应用,以访问https://management.azure.com/
来创建Azure VM。此时,您需要自己做所有事情,并且可以控制此过程。
答案 2 :(得分:0)
我能够为Microsoft.Azure.Management.Fluent类跟踪Log。 跟随Follow this link- Log and Trace section
我在数据库中有日志响应:
/// <summary>
/// Here we can handle response.insert response in database
/// </summary>
/// <param name="invocationId">The invocation identifier.</param>
/// <param name="response">The response message instance.</param>
public void ReceiveResponse(string invocationId, HttpResponseMessage response)
{
logapResponse(response);
}