2012-11-21 11 views
9

Desidero gestire i miei servizi cloud di Azure in modo programmatico.Gestisci i miei servizi cloud di Azure utilizzando l'API C# nativa?

Sono a conoscenza dell'API REST, ma mi chiedo se sia un'API C# nativa disponibile proprio come con Azure Storage.

REST API - Operazioni sui Hosted Services: http://msdn.microsoft.com/en-us/library/windowsazure/ee460812.aspx

o devo per avvolgere la REST API me stesso come descritto nel post qui sotto?

Azure - Non è possibile a livello di codice eseguire VIP Swap: Azure - Cannot programmatically perform VIP Swap

Grazie.


Edit:

Il suggerimento CSManage mi ha aiutato molto.

È possibile riutilizzare il progetto ServiceManagement e scrivere il proprio client (anziché CSManage).

Utilizzare ServiceManagementHelper per impostare un canale per l'esecuzione dei comandi.

Esempio:

public static string SubscriptionId { get; set; } 
    public static string CertificateThumbprint { get; set; } 

    public static X509Certificate2 Certificate { get; set; } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     SubscriptionId = ConfigurationManager.AppSettings["SubscriptionId"]; 
     CertificateThumbprint = ConfigurationManager.AppSettings["CertificateThumbprint"]; 

     X509Store certificateStore = new X509Store(StoreName.My, StoreLocation.CurrentUser); 
     certificateStore.Open(OpenFlags.ReadOnly); 
     X509Certificate2Collection certs = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, CertificateThumbprint, false); 
     if (certs.Count != 1) 
     { 
      MessageBox.Show("Client certificate cannot be found. Please check the config file. "); 
      return; 
     } 
     Certificate = certs[0]; 

     // List Hosted Services 
     var channel = ServiceManagementHelper.CreateServiceManagementChannel("WindowsAzureEndPoint", Certificate); 
     var lhs = channel.ListHostedServices(SubscriptionId); 
     foreach (HostedService hs in lhs) 
     { 
      MessageBox.Show(hs.ServiceName); 
     } 
    } 

risposta

1

Ho avuto un requisito molto simile e sfortunatamente non esiste un wrapper che ti permetta di fare questo, quello menzionato nell'altra risposta ha solo il supporto di tabelle/blob/code.

Tuttavia esiste una soluzione pulita denominata csmanage, è un'applicazione di prompt dei comandi che utilizza l'API REST sotto il cofano che consente di gestire praticamente tutto su Azure; è possibile visualizzare la fonte e vedere come è fatta e come implementarla da soli.

Link to CSManage on MSDN

Un avvertimento: è piuttosto un compito di cogliere il flusso dell'applicazione ma una volta che andare avanti, diventa più facile.

Suggerimento: dare un'occhiata a CSManageCommand.cs sulla riga 104 è dove inizia la magia, stanno usando WCF per comunicare con l'API che è possibile vedere in app.config.

Se stai cercando di utilizzare certo comando noto si può vedere che stanno presentati nelle seguenti classi:

enter image description here

+0

è possibile gestire le macchine virtuali tramite l'API dei comandi, oppure è possibile utilizzare lo strumento CLI di Azure (scritto nel nodo) per gestire le VM. Questo è quello che uso. – smcg

+0

Grazie, sembra che il csmanage sia ciò di cui ho bisogno. Ora tutto quello che devo fare è capire il codice ... :-) –

-1

Sì, c'è un API di Windows Azure per C# e .NET.

È possibile trovare la loro pagina Github here e la documentazione here.

+0

Sì, lo uso per l'archiviazione di Azure ma manca tutte le altre cose. –

+0

di nuovo, dovrete cercare la CLI basata su nodo o l'API dei comandi o qualcos'altro per farlo. – smcg

1

Si potrebbe anche guardare il Azure Fluent Management Library. È disponibile un pacchetto NuGet.

+0

Sai se il codice sorgente di Azure Fluent Management Library è disponibile da qualche parte? –

+0

Non sono sicuro che sia aggiornato con il pacchetto nuget, ma è possibile trovare la fonte su https://github.com/azurecoder/fluent-management. –

3

A partire da ottobre 2013 è disponibile un set di librerie C# che eseguono il wrapping dell'API REST di gestione dei servizi di Windows Azure.

È disponibile in nuget con il nome del pacchetto Microsoft.WindowsAzure.Management.Libraries.

I post del blog here e here forniscono un po 'di panoramica e la documentazione è disponibile su MSDN.

Come richiesto dalla domanda, queste librerie consentono di gestire i servizi (creare distribuzioni, distribuzioni di calcoli, eseguire vip swap, ecc.) Piuttosto che interagire con lo storage blob/table.

Problemi correlati