Más contenido relacionado
Windows Azure Service Management REST API
- 2. HN statemachine
Twitter http://twitter.com/statemachine
Blob Azureの小ネタ
http://d.hatena.ne.jp/StateMachine
Azure歴 7ヶ月
職種 研究開発職らしい (SEではないです)
最近は、日々とAzureと戯れております
2
- 3. Windows Azureを外部から操作できるAPI
→ プログラムからAzureを操作可能
ストレージライブラリのようにマネージライブラリは提供さ
れずREST API を直接操作
これらを利用したツールは以下
Windows Azure MMC スナップイン
Windows Azure Service Management CmdLet
csmanage.exe (ソース付)
3
- 4. ホストサービス
一覧、情報、状態取得
アプリケーションを配置、削除、実行、サスペンド
構成ファイル変更、アップグレード、スワップなど
ストレージ
ストレージ一覧、情報取得
キーの取得、再生成
証明書の操作
Affinityグループの操作
ゲストOS情報の取得
非同期操作のトラッキング
4
- 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. ゲスト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. レスポンスデータとして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