Как добиться успеха Ответ от Microsoft.Azure.Management.Fluent api метод - PullRequest
0 голосов
/ 27 июня 2018

Я создал виртуальную машину на портале Azure через класс Fluent API в c #. мой код 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, если выполнение не удалось но нам нужен ответ, если выполнение выполнится успешно.

Ответы [ 3 ]

0 голосов
/ 29 июня 2018

Поскольку вы используете библиотеки управления Azure для создания своих виртуальных машин Azure, SDK автоматически преобразует весь успешный ответ в IVirtualMachine, вы можете просто получить доступ к экземпляру IVirtualMachine, чтобы получить все нужные вам свойства, вместо прямого доступа оригинальный ответ HTTP.

Вы можете выполнить PrintVirtualMachine(IVirtualMachine virtualMachine) в здесь , чтобы получить ожидаемые свойства и создать новый анонимный класс, который будет содержать ваши свойства виртуальной машины, а затем вернуть его клиенту следующим образом:

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

Я не могу понять, почему вы хотите оригинальный HTTP-ответ. Но если вы все еще настаиваете на том, чтобы просто получить чистый HTTP-ответ, вам нужно следовать предложению Аравинда о явной отправке REST API Виртуальные машины - создание или обновление с соответствующей авторизацией самостоятельно. Для аутентификации вы можете использовать API аутентификации для доступа к подпискам , чтобы зарегистрировать приложение AAD для доступа к https://management.azure.com/ для создания виртуальных машин Azure. На этом этапе вам нужно сделать все самостоятельно, и вы сможете контролировать этот процесс.

0 голосов
/ 04 июля 2018

Я могу отследить журнал для класса Microsoft.Azure.Management.Fluent. Follow Перейдите по этой ссылке - раздел Log and Trace

У меня есть ответ журнала в базе данных:

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

    }
0 голосов
/ 27 июня 2018

Назначьте кусок кода создания виртуальной машины Azure для переменной. Проверьте, не является ли это var нулевым. Если да, то виртуальная машина успешно создана. В случае исключения вы явно идете в блок catch. И если вы хотите, вы можете проверить любое свойство вновь созданного объекта VM, как они делают это в этом модульном тесте .

...