http:/twitter.com/statemachine



              1
HN        statemachine
Twitter   http://twitter.com/statemachine
Blob      Azureの小ネタ
           http://d.hatena.ne.jp/S...
Windows Azureを外部から操作できるAPI
 → プログラムからAzureを操作可能
ストレージライブラリのようにマネージライブラリは提供さ
 れずREST API を直接操作

これらを利用したツールは以下
 Windows...
 ホストサービス
     一覧、情報、状態取得
     アプリケーションを配置、削除、実行、サスペンド
      構成ファイル変更、アップグレード、スワップなど
 ストレージ
     ストレージ一覧、情報取得
     キー...
 ホストサービスの作成、削除
ストレージアカンウントの作成、削除




          5
https://management.core.windows.net/<サブスクリプションID >




① 証明書の
作成とアップロード
                   ② 操作URIへHTTP
                  ...
// サブスクリプションIDと証明書の拇印
string subscriptionId = "サブスクリプションIDを入れてね";
string thumbprint = "証明書の拇印を入れてね";

// 証明書ストアから証明書を検索
X5...
ゲストOS一覧を取得するURI
// 操作毎にURIが異なる
Uri uri = new Uri(string.Format(
"https://management.core.windows.net/{0}/operatingsystems"...
 レスポンスデータとしてXMLが取得できる
 あとは、煮るなり焼くなりLINQなりする
<OperatingSystems xmlns=http://schemas.microsoft.com/windowsazure
          ...
ゲストOS のバージョン取得し、
 DataGridでXMLをバインド表示
ホストサービスから一覧を取得、一括削除




            10
管理APIを使うとAzureをプログラムから操作可能
マネージライブラリはないので、REST APIを操作
詳細は、MDNライブラリ
 http://msdn.microsoft.com/en-
 us/library/ee460799....
Upcoming SlideShare
Loading in …5
×

Windows Azure Service Management REST API

3,304 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,304
On SlideShare
0
From Embeds
0
Number of Embeds
203
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Windows Azure Service Management REST API

  1. 1. http:/twitter.com/statemachine 1
  2. 2. HN statemachine Twitter http://twitter.com/statemachine Blob Azureの小ネタ http://d.hatena.ne.jp/StateMachine Azure歴 7ヶ月 職種 研究開発職らしい (SEではないです) 最近は、日々とAzureと戯れております 2
  3. 3. Windows Azureを外部から操作できるAPI → プログラムからAzureを操作可能 ストレージライブラリのようにマネージライブラリは提供さ れずREST API を直接操作 これらを利用したツールは以下 Windows Azure MMC スナップイン Windows Azure Service Management CmdLet csmanage.exe (ソース付) 3
  4. 4.  ホストサービス  一覧、情報、状態取得  アプリケーションを配置、削除、実行、サスペンド 構成ファイル変更、アップグレード、スワップなど  ストレージ  ストレージ一覧、情報取得  キーの取得、再生成  証明書の操作  Affinityグループの操作  ゲストOS情報の取得  非同期操作のトラッキング 4
  5. 5.  ホストサービスの作成、削除 ストレージアカンウントの作成、削除 5
  6. 6. https://management.core.windows.net/<サブスクリプションID > ① 証明書の 作成とアップロード ② 操作URIへHTTP でリクエスト ③ レスポンス取得 レスポンス データ 6
  7. 7. // サブスクリプションIDと証明書の拇印 string subscriptionId = "サブスクリプションIDを入れてね"; string thumbprint = "証明書の拇印を入れてね"; // 証明書ストアから証明書を検索 X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false); X509Certificate2 cert = certs[0]; store.Close(); 現在のユーザー/個人 から検索 続く... 7
  8. 8. ゲストOS一覧を取得するURI // 操作毎にURIが異なる Uri uri = new Uri(string.Format( "https://management.core.windows.net/{0}/operatingsystems", subscriptionId)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Method = "GET"; GET //証明書とヘッダを付加 request.ClientCertificates.Add(cert); request.Headers.Add("x-ms-version", "2010-04-01"); 証明書、ヘッダつける //レスポンス。XMLを読み込む var response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { var body = XElement.Load(response.GetResponseStream()); Console.WriteLine(body); } レスポンスはXML 8
  9. 9.  レスポンスデータとしてXMLが取得できる  あとは、煮るなり焼くなりLINQなりする <OperatingSystems xmlns=http://schemas.microsoft.com/windowsazure xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <OperatingSystem> <Version>WA-GUEST-OS-1.0_200912-01</Version> <Label>V2luZG93cyBBenVyZSBHdWVzdCBPUyAxLjAgKFJlbGVhc2・・・・・・・・・・</Label> <IsDefault>false</IsDefault> <IsActive>true</IsActive> </OperatingSystem> ~ 中略 ~ <OperatingSystem> <Version>WA-GUEST-OS-1.5_201006-01</Version> <Label>V2luZG93cyBBenVyZSBHdWVzdCBPUyAxLjUgKFJlbGVhjA・・・・・・・・・・</Label> <IsDefault>true</IsDefault> <IsActive>true</IsActive> </OperatingSystem> </OperatingSystems> 9
  10. 10. ゲストOS のバージョン取得し、 DataGridでXMLをバインド表示 ホストサービスから一覧を取得、一括削除 10
  11. 11. 管理APIを使うとAzureをプログラムから操作可能 マネージライブラリはないので、REST APIを操作 詳細は、MDNライブラリ http://msdn.microsoft.com/en- us/library/ee460799.aspx Service Management APIを利用して、 かゆいところに手が届く Azureオリジナルツールの開発を!! 11

×