新しい機能:Azure Service Management REST APIでAffinity Group操作とサブスクリプション履歴

Windows Azure Team Blogに投稿された「New Content: Affinity Group and Subscription History Operations Now Available in the Windows Azure Service Management REST API」をざっくり意訳した投稿です。

Windows Azure Service Management REST APIで、以下の新しい操作を可能にするコンテンツを公開しました。

今までは管理ポータルを使用することでしかできなかった操作が、今回のリリースで、プログラム的にAffinity Groupを作成、更新、削除できるようになりました。

Affinity Group操作に加えて、さらに過去90日間サブスクリプションで発生したすべての操作履歴を提供するサブスクリプション履歴の提供を始めました。特定ホストサービスのみの履歴を表示するようなフィルタリングして結果を表示することもできます。

これらの更新された機能を使用するためには、リクエストヘッダーで、Service Management APIの新しいバージョンを指定しなければなりません。

Affinity Groupの更新

Affinity Groupの更新は、サブスクリプションのAffinity Groupのラベル、詳細を更新するための機能です。

リクエスト

Affinity Groupの更新をするためのリクエストは、次のように指定します。

<subscription-id>は、更新したいサブスクリプションIDに置き換えます。
<affinity-group-name>は、対象のAffinity Group名に置き換えます。

Method リクエストURI HTTPバージョン
PUT https://management.core.windows.net/<subscription-id>/affinitygroups/<affinity-group-name> HTTP/1.1

リクエストヘッダー

リクエストヘッダー 説明
x-ms-version

必須。このリクエストを使用するためにバージョンを指定します。このヘッダーは、2011-02-25 以降を指定しなければなりません。バージョンヘッダーについての詳細は、 Service Management Versioningを参照してください。

リクエストボディー

リクエストボディーのフォーマットは以下のようにします。

<?xml version="1.0" encoding="utf-8"?>
<UpdateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure">
      <Label>base64-encoded-affinity-group-label</Label>
      <Description>affinity-group-description</Description>
</UpdateAffinityGroup>

リクエストボディーのキーエレメントは、次の説明を参照してください。

エレメント名 説明
Label 必須。Affinity GroupラベルはBase64エンコードします。上限100文字までです。
Description オプション。Affinity Groupの詳細です。上限1024文字までです。

レスポンス

レスポンスは、HTTP状態コード、レスポンスヘッダー、レスポンスボディーが含まれます。

状態コード

操作が成功すると、成功状態コード200(OK)が返ってきます。

状態コードの詳細は、Service Management Status and Error Codesを参照してください。

レスポンスヘッダー

この操作のレスポンスには、以下のヘッダーが含まれます。レスポンスには、一般的なHTTPヘッダーを含みます。すべての一般的なヘッダーは、HTTP/1.1プロトコルを指定し従います。

レスポンスヘッダー 説明
x-ms-request-id 管理サービスに対するリクエストの一意の値です。

権限

アカウントオーナーのみが、この操作をすることができます。

Affinity Groupの作成

Affinity Groupの作成は、サブスクリプションの新しいAffinity Groupを作成する機能です。

リクエスト

Affinity Groupの作成をするためのリクエストは、次のように指定します。

<subscription-id>は、更新したいサブスクリプションIDに置き換えます。

Method リクエストURI HTTPバージョン
POST https://management.core.windows.net/<subscription-id>/affinitygroups HTTP/1.1

リクエストボディー

リクエストボディーのフォーマットは以下のようにします。

<?xml version="1.0" encoding="utf-8"?>
<CreateAffinityGroup xmlns="http://schemas.microsoft.com/windowsazure">
      <Name>affinity-group-name</Name>
      <Label>base64-encoded-affinity-group-label</Label>
      <Description>affinity-group-description</Description>
      <Location>location</Location>
</CreateAffinityGroup>

リクエストボディーのキーエレメントは、次の説明を参照してください。

エレメント名 説明
Name 必須。Affinity Group名はサブスクリプションで一意でなければなりません。
Label 必須。Affinity GroupラベルはBase64エンコードします。上限100文字までです。
Description オプション。Affinity Groupの詳細です。上限1024文字までです。
Location 必須。Affinity Groupで作成されるロケーションです。提供されるロケーションを一覧するために、List Locationsを使用します。

状態コード

操作が成功すると、成功状態コード201(Created)が返ってきます。

状態コードの詳細は、Service Management Status and Error Codesを参照してください。

Affinity Groupの削除

Affinity Groupの削除は、サブスクリプションのAffinity Groupを削除する機能です。

リクエスト

Affinity Groupの削除をするためのリクエストは、次のように指定します。

<subscription-id>は、更新したいサブスクリプションIDに置き換えます。
<affinity-group-name>は、対象のAffinity Group名に置き換えます。

Method リクエストURI HTTPバージョン
DELETE https://management.core.windows.net/<subscription-id>/affinitygroups/<affinity-group-name> HTTP/1.1

状態コード

操作が成功すると、成功状態コード200(OK)が返ってきます。

状態コードの詳細は、Service Management Status and Error Codesを参照してください。

サブスクリプション操作履歴

サブスクリプションの操作履歴は、指定した期間のサブスクリプションで実行した作成、更新、削除の一覧を返します。

リクエスト

サブスクリプションの操作履歴を取得するためのリクエストは、次のように指定します。

<subscription-id>は、更新したいサブスクリプションIDに置き換えます。
<start-of-timeframe>は、指定期間の開始日に置き換えます。
<end-of-timeframe>は、指定期間の終了日に置き換えます。
<object-id>(オプション)は、サブスクリプションから希望するオブジェクトに置き換えます。
<Succeeded|Failed|InProgress>(オプション)は、取得したいサブスクリプション操作の状態に置き換えます。
<opaque-continuation-token>(オプション)は、一回のレスポンス量が多すぎる場合、前のリクエストから続きを取得するためのトークンに置き換えます。

Method リクエストURI HTTPバージョン
GET https://management.core.windows.net/<subscription-id>/operations?StartTime=<start-of-timeframe>&EndTime=<end-of-timeframe>&ObjectIdFilter=<object-url>&OperationResultFilter=<Succeeded|Failed|InProgress>&ContinuationToken=<opaque-continuation-token> HTTP/1.1