Как включить/выключить виртуальную машину Azure через API управления Azure (отдых)

Я хочу создать для себя бота для запуска и остановки виртуальной машины Azure. Что я хочу сделать, так это иметь бот slack/telegram, который прослушивает сообщения и запускает/останавливает мою виртуальную машину с помощью команд /start/stop. Какую команду REST API я должен использовать для этого?

Что нужно:

Некоторый пример кода на C#, который вызывает API управления Azure для запуска освобожденной виртуальной машины.

Некоторая ссылка, где я могу получить значения для параметров метода API (например, идентификатор подписки, идентификатор ресурса и т. д.).

Также

Я прочитал этот вопрос, но это не помогло мне понять, как быть с авторизацией и где взять эти параметры.

Я создаю этого бота, используя язык С#.


person ALEX TRUSHKO    schedule 06.10.2017    source источник
comment
Добавьте больше деталей о том, чего вы хотите достичь. Ссылка, которую вы пытаетесь разместить, не работает.   -  person Elmer Dantas    schedule 06.10.2017


Ответы (1)


вызывает API управления Azure для запуска освобожденной виртуальной машины

В REST API виртуальных машин перечислены операции с виртуальными машинами. Чтобы запустить виртуальную машину, вы можете попробовать этот API:

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vm}/start?api-version={apiVersion}

где я могу получить значения для параметров метода API (например, идентификатор подписки, идентификатор ресурса и т. д.).

Вы можете найти {subscriptionId} и { resourceGroup} на портале Azure.

введите описание изображения здесь

как быть с авторизацией

Чтобы начать работу с Операции Azure REST и запрос проверки подлинности. И вы можете обратиться к следующему коду, чтобы получить токен доступа.

string tenantId = "{tenantId}";
string clientId = "{clientId}";
string clientSecret = "{secret}";
string subscriptionid = "{subscriptionid}";

string authContextURL = "https://login.windows.net/" + tenantId;
var authenticationContext = new AuthenticationContext(authContextURL);
var credential = new ClientCredential(clientId, clientSecret);
var result = await authenticationContext.AcquireTokenAsync(resource: "https://management.azure.com/", clientCredential: credential);

if (result == null)
{
    throw new InvalidOperationException("Failed to obtain the JWT token");
}

string token = result.AccessToken;

Кроме того, в этой статье объясняется, как создайте приложение AD и субъект-службу, которые могут получить доступ к ресурсам, см. его.

person Fei Han    schedule 12.10.2017
comment
Работал как шарм! Спасибо! - person ALEX TRUSHKO; 13.10.2017