如何获得成功 来自 Microsoft.Azure.Management.Fluent api 方法的响应



我已经通过 c# 中的 Fluent API class 在 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 块中得到响应。 但是如果执行成功,我们需要响应。

将 Azure VM 创建代码段分配给变量。 检查该变量是否不为 null。如果是,则成功创建 VM。在异常情况下,您显然会转到捕获块。如果需要,可以验证新创建的 VM 对象的任何属性,就像他们在此单元测试中所做的那样。

由于你使用的是 Azure 管理库来创建 Azure VM,SDK 会自动将所有成功的响应转换为IVirtualMachine,你可以只访问IVirtualMachine实例来检索所需的所有属性,而不是直接访问原始 HTTP 响应。

您可以按照此处下的PrintVirtualMachine(IVirtualMachine virtualMachine)来检索所需的属性,并构造一个新的匿名类,其中包含您的 VM 属性,然后将其返回给客户端,如下所示:

return Json(new
{
ComputerName = linuxVM.ComputerName,
PowerState = linuxVM.PowerState,
ProvisioningState = linuxVM.ProvisioningState
.
.
});

我不明白你为什么想要原始的HTTP响应。但是,如果您仍然坚持只检索纯 HTTP 响应,则需要按照 Aravind 评论的建议,自行使用相关授权显式发送 REST API 虚拟机 - 创建或更新。对于身份验证,可以按照身份验证 API 访问订阅,以注册 AAD 应用以访问https://management.azure.com/创建 Azure VM。此时,您需要自己完成所有事情,并且可以控制此过程。

我能够跟踪日志Microsoft.Azure.Management.Fluent class。 按照此链接 - 日志和跟踪部分

我在数据库中有日志响应:

/// <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);
}

最新更新