2012-11-21 9 views
9

Azure Cloud Servicesをプログラムで管理したいと考えています。ネイティブC#APIを使用してAzure Cloudサービスを管理しますか?

私はREST APIを認識していますが、Azure Storageと同じようにネイティブC#APIを使用できるのかどうか疑問に思っています。

RESTのAPI - ホステッドサービスの操作:http://msdn.microsoft.com/en-us/library/windowsazure/ee460812.aspx

または私は以下の記事で説明したようにRESTのAPIを自分でラップする必要がありますか? Azure - Cannot programmatically perform VIP Swap

ありがとう: -

Azureでは、プログラムVIPスワップを実行できません。


編集:

CSManageの提案は私をたくさん助けました。

ServiceManagementプロジェクトを再利用して、独自のクライアントを作成することができます(CSManageではなく)。

ServiceManagementHelperを使用して、コマンドを実行するチャネルを設定します。

例:

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

答えて

1

私は非常によく似た要件を持っていますが、残念ながらこれを行うためのラッパーはありません。他の回答に記載されているものはテーブル/ BLOB /キューのサポートのみです。

しかし、csmanageと呼ばれるきれいなソリューションがあります。これはコマンドプロンプトアプリケーションであり、REST APIを使ってAzure上で何かを管理できます。ソースを表示し、ソースがどのように処理され、どのように実装するかを確認することができます。警告の

Link to CSManage on MSDN

ワード:それはアプリケーションの流れを把握するためにかなりの作業ですが、あなたが軌道に乗ると、それが簡単になります。

ヒント:CSManageCommand.csの行104は、魔法が始まる場所です。彼らはapp.configで見ることができるAPIと通信するためにWCFを使用しています。

あなたが特定の既知のコマンドを使用することを探しているなら、あなたは彼らが次のクラスで提示している見ることができます:

enter image description here

+0

では、コマンドレットAPIを使用してVMを管理したり、ノードで書かれたAzure CLIツールを使用してVMを管理することができます。それが私が使うものです。 – smcg

+0

ありがとう、それはcsmanageのように私が必要なものです。今度はコードを理解するだけです:-) –

-1

はい、C#と.NETのWindows AzureのAPIがあります。

Githubページhereとドキュメントhereがあります。

+0

はい、私はこのファイルをAzureストレージに使用していますが、それ以外のものはすべてありません。 –

+0

もう一度、ノードベースのCLIまたはコマンドレットAPIなどを調べる必要があります。 – smcg

1

あなたはまた、Azure Fluent Management Libraryに見えるかもしれません。利用可能なNuGetパッケージがあります。

+0

Azure Fluent Management Libraryのソースコードがどこかで入手できますか? –

+0

ナゲットパッケージが最新のものかどうかは分かりませんが、https://github.com/azurecoder/fluent-managementでソースを見つけることができます。 –

3

2013年10月現在、Windows Azure Service Management REST APIをラップする一連のC#ライブラリがあります。

ナゲットのパッケージ名はMicrosoft.WindowsAzure.Management.Librariesです。

ブログの投稿herehereは、少しの概要を示し、ドキュメントはMSDNにあります。

これらのライブラリを使用すると、ブロブ/テーブルストレージと対話するのではなく、サービスの管理(展開の作成、展開の展開、VIPのスワップなど)を行うことができます。

関連する問題