2017-10-06 5 views
0

Je souhaite créer un bot Azure VM start/stop pour moi-même. Ce que je veux faire est d'avoir un bot de slack/télégramme qui écoute les messages et démarre/arrête ma VM par des commandes/start/stop. Quelle commande REST api devrais-je utiliser pour faire cela?Comment activer/désactiver la machine virtuelle Azure via l'API de gestion Azure (reste)

ce qui est nécessaire:

Quelques exemples de code en C# qui appelle l'API de gestion d'azur pour démarrer la machine virtuelle désallouées

Certains référence où je peux obtenir des valeurs pour les paramètres de la méthode de l'API (par exemple id abonnement, ressources id, etc).

également

J'ai lu this question, mais il ne m'a pas aidé à comprendre comment faire face à autorisation et où obtenir ces paramètres. Je crée ce bot en utilisant le langage C#.

+0

Ajoutez plus de détails sur ce que vous voulez réaliser. Le lien que vous essayez de publier ne fonctionne pas. –

Répondre

0

appelle API de gestion d'azur pour démarrer la machine virtuelle désallouées

Virtual Machines REST API énumère les opérations sur les machines virtuelles. Pour démarrer une machine virtuelle, vous pouvez essayer this API:

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

où je peux obtenir des valeurs pour les paramètres de la méthode de l'API (par exemple id abonnement, id ressources, etc.).

Vous pouvez trouver {subscriptionId} et { resourceGroup} sur le portail Azure.

enter image description here

comment faire face à autorisation

Vous pouvez vérifier this article pour commencer les opérations Azure REST et l'authentification de la demande. Et vous pouvez vous référer au code suivant pour acquérir un jeton d'accès.

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; 

En outre, cet article a expliqué comment create AD application and service principal that can access resources, s'il vous plaît se référer à elle.

+0

A travaillé comme un charme! Merci! –