AzureでREST APIを実行する方法3選

Azure

Azureリソースの作成・変更には、Azure Portal、CLI、PowerShellなど多様な手段があります。Azure Portalでは、手動操作で簡単にリソースを作成できるのが最大の利点です。また、CLIやPowerShellはAPIをラップして使いやすく設計されており、公式ドキュメントやネット上には多くのサンプルもあります。
しかし、プレビュー機能を利用する際や特定のカスタムシナリオでは、これらの手段では対応できず、直接REST APIを実行する必要があることが少なくありません。

今回は、REST APIを実行する方法とその使い分けについて解説します。

結論

手段手軽さ仕様タイミング
直接実行×ブラウザやCLIが使用できない環境。スクリプトやプログラムを作成して繰り返し実行する場合。
az restブラウザが使えない環境や検証目的で使用。繰り返し実行が必要な場合にも対応可能。
APIリファレンスページからの実行ブラウザからAzureに認証でき、検証目的で利用する場合に最適。

直接実行

もっとも基本的な方法です。curl PostmanVS CodeのREST Client拡張機能など、お好みのツールを使用できます。
具体的な実行方法については、以下の公式ブログを参考にしてください。

ただせっかくなので、APIを1つ実行してみましょう。実行までの流れは以下のようになります。

  1. アクセストークンの取得(Azure CLI)
  2. アクセストークンをヘッダーにしていいてAPI実行

まずはアクセストークンをAzure CLIを使って取得します。CLIを使えない環境でもAzure PortalのCloud Shell上で実行できます。結果の「accessToken」に長い文字列が取得できるのでこれをメモっておきます。また「expiresOn」にあるように有効期限があるので注意しましょう。

az account get-access-token
{
  "accessToken": "xxxxxxxxx",
  "expiresOn": "2023-12-17 01:18:29.000000",
  "expires_on": 1702775909,
  "subscription": "f1fa317f-6c2f-45dc-8d62-0b026c1785b3",
  "tenant": "tenant id",
  "tokenType": "Bearer"
}

続いて、アクセストークンを使って実際にAPIを実行します。ここではSubnetの一覧を取得します。curlコマンドで実行していますが、お好みの手段で実行してください。

curl  -X GET -H "Authorization: Bearer access-token"  https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets?api-version=2024-05-01

この方法の難点は、認証用トークンを生成する手間があることです。また、トークンには有効期限があるため、定期的にリフレッシュが必要です。

Azure PortalやCLI、PowerShellでは、この認証更新処理を自動的に実施してくれるため意識することはありません。

何度も繰り返し実行する場合には、ちょっとしたスクリプトやプログラムを作成することもあると思います。その際は直接APIを実行することになるでしょう。

az restの利用

az rest コマンドはAzure CLIに含まれるサブコマンドで、任意のAPIを実行できます。この方法の利点は、認証トークンの生成が不要な点です。事前に az login を済ませておけば、トークンの生成は裏側で自動的に処理されます。

CLIをインストール済みであるなら、この方法が楽だと思います。また繰り返し実行が必要な時でも、スクリプトを作成すればよいので、その際も選択肢となると思います。

それでは再びSubnet一覧を取得してみましょう。アクセストークンの取得がないだけでだいぶ楽ですね。

az rest --uri https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets?api-version=2023-05-01  --method get

REST APIリファレンスページから直接実行

ちょっと試してみたい!そんな時はこの方法が一番楽だと思います。「APIを実行したい!」そんなときどうしますか?そうです、公式ドキュメント見に行くと思います。そして、実行したいAPIを調べるとなんと「Try it」というボタンがあります。これを押してAzureにログインすると、右側にAPI実行ペインが表示されます。あとは必要なパラメータを入力して一番下にあるRunボタンを押すだけです。

おなじみのSubnetの情報を取得するAPIを例として見てみます。

ブラウザでログイン済みであるため、認証ヘッダーの指定も不要です。ブラウザでこんなにも簡単に実行できるなら、わざわざ他の方法を使う必要はありませんね。もちろんな十回も繰り返し実行が必要な時はスクリプトを作成したほうが効率が良いです。

最後に

REST APIを使用する必要がある場合、以下の手順がおすすめです:

  • APIリファレンスページでブラウザから簡単に実行。
  • 繰り返し実行が必要なら、az rest で効率化。
  • CLIやブラウザが使用できない場合、直接実行。

最新のAzure REST API仕様や公式ドキュメントを活用し、効率的にAzureの操作を進めていきましょう。

コメント