🦁
Azure REST API サンプルコード
はじめに
Azure REST APIをcurlで実行する際の覚え書き。
サンプルはVnetを作成するAPI。
変数の設定部分だけ修正すれば残りはコピペで実行できるはず。
変数の設定
# Azure ADテナント、サブスクリプション、シークレット情報
tenant_id="00000000-0000-0000-0000-00000000000000"
subscriptionId="00000000-0000-0000-0000-00000000000000"
client_id="<application id>"
client_secret="<client secret>"
# 実行したいREST APIのHHTTPメソッド
method="PUT"
# 実行したいREST APIで使用する変数の定義(URIの記載に合わせて定義)
resourceGroupName="resourceGroupName"
virtualNetworkName="virtualNetworkName"
# 実行したいREST APIで送信する本文(必要な場合)
body_json=$(cat << EOS
{
"properties": {
"addressSpace": {
"addressPrefixes": [
"10.0.0.0/16"
]
},
"flowTimeoutInMinutes": 10
},
"location": "eastus"
}
EOS
)
body=$(echo $body_json | jq -c)
# 実行したいREST APIのURI ※subscriptionIdなどの変数部分を修正
uri="https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Network/virtualNetworks/${virtualNetworkName}?api-version=2022-09-01"
tokenの取得
resource=$(echo $uri | cut -d '/' -f 1-3)
token=$(curl -X POST https://login.microsoftonline.com/${tenant_id}/oauth2/token \
-F grant_type=client_credentials \
-F resource=${resource} \
-F client_id=${client_id} \
-F client_secret=${client_secret} | jq -r .access_token)
REST API実行
curl -X ${method} ${uri} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $token" \
-d ${body} | jq
Discussion