Top Banner
http:/twitter.com/statemachine 1
11

Windows Azure Service Management REST API

Jul 03, 2015

Download

Technology

statemachine
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Windows Azure  Service Management REST API

http:/twitter.com/statemachine

1

Page 2: Windows Azure  Service Management REST API

HN statemachine

Twitter http://twitter.com/statemachine

Blob Azureの小ネタ

http://d.hatena.ne.jp/StateMachine

Azure歴 7ヶ月

職種 研究開発職らしい (SEではないです)

最近は、日々とAzureと戯れております

2

Page 3: Windows Azure  Service Management REST API

Windows Azureを外部から操作できるAPI

→ プログラムからAzureを操作可能

ストレージライブラリのようにマネージライブラリは提供されずREST API を直接操作

これらを利用したツールは以下

Windows Azure MMC スナップイン

Windows Azure Service Management CmdLet

csmanage.exe (ソース付)

3

Page 4: Windows Azure  Service Management REST API

ホストサービス

一覧、情報、状態取得

アプリケーションを配置、削除、実行、サスペンド 構成ファイル変更、アップグレード、スワップなど

ストレージ

ストレージ一覧、情報取得

キーの取得、再生成

証明書の操作

Affinityグループの操作

ゲストOS情報の取得

非同期操作のトラッキング 4

Page 5: Windows Azure  Service Management REST API

ホストサービスの作成、削除

ストレージアカンウントの作成、削除

5

Page 6: Windows Azure  Service Management REST API

① 証明書の 作成とアップロード

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

レスポンス

データ

③ レスポンス取得

② 操作URIへHTTPでリクエスト

6

Page 7: Windows Azure  Service Management REST API

// サブスクリプション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

Page 8: Windows Azure  Service Management REST API

// 操作毎にURIが異なる Uri uri = new Uri(string.Format( "https://management.core.windows.net/{0}/operatingsystems", subscriptionId)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Method = "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); }

ゲストOS一覧を取得するURI

GET

証明書、ヘッダつける

レスポンスはXML 8

Page 9: Windows Azure  Service Management REST API

<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>

レスポンスデータとしてXMLが取得できる

あとは、煮るなり焼くなりLINQなりする

9

Page 10: Windows Azure  Service Management REST API

ゲストOS のバージョン取得し、

DataGridでXMLをバインド表示

ホストサービスから一覧を取得、一括削除

10

Page 11: Windows Azure  Service Management REST API

管理APIを使うとAzureをプログラムから操作可能

マネージライブラリはないので、REST APIを操作

詳細は、MDNライブラリ

http://msdn.microsoft.com/en-

us/library/ee460799.aspx

Service Management APIを利用して、

かゆいところに手が届く Azureオリジナルツールの開発を!!

11