チュートリアル: プログラムで Grafana API を呼び出す
このチュートリアルでは、次の作業を行う方法について説明します。
- アプリケーションのサービス プリンシパルに Azure Managed Grafana ロールを割り当てる
- アプリケーションの詳細を取得する
- アクセス トークンを取得する
- Grafana API を呼び出す
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Azure Managed Grafana ワークスペース。 Azure Managed Grafana インスタンスを作成します。
- サービス プリンシパルのある Microsoft Entra アプリケーション。 Microsoft Entra アプリケーションとサービス プリンシパルを作成します。 わかりやすくするため、Azure Managed Grafana インスタンスと同じ Microsoft Entra テナントにあるアプリケーションを使います。
Azure へのサインイン
Azure アカウントで Azure Portal (https://portal.azure.com/) にサインインします。
アプリケーションのサービス プリンシパルに Azure Managed Grafana ロールを割り当てる
Azure portal で Managed Grafana インスタンスを開きます。
ナビゲーション メニューで [アクセス制御 (IAM)] を選択します。
[追加] 、 [ロールの割り当ての追加] の順に選択します。
[Grafana 編集者] ロールを選択し、[次へ] を選択します。
[アクセス権の割り当て先] で、[User, group, or service principal](ユーザー、グループ、またはサービス プリンシパル) を選択します。
[メンバーを選択する] を選択し、サービス プリンシパルを選択して、[選択] をクリックします。
[レビューと割り当て] を選択します。
アプリケーションの詳細を取得する
次に、Grafana API アクセス トークンを取得し、Grafana API を呼び出すために使用するいくつかの情報を収集する必要があります。
次のようにテナント ID を見つけます。
- Azure portal で [リソース、サービス、ドキュメントの検索 (G+ /)] に「Microsoft Entra ID」と入力します。
- [Microsoft Entra ID] を選びます。
- 左側のメニューで [プロパティ] を選択します。
- [テナント ID] フィールドを見つけて、その値を保存します。
次のようにクライアント ID を見つけます。
- Azure portal の Microsoft Entra ID で、左側のメニューから [アプリの登録] を選択します。
- アプリを選択します。
- [概要] で、[アプリケーション (クライアント) ID] フィールドを見つけて、その値を保存します。
次のようにアプリケーション シークレットを作成します。
- Azure portal の Microsoft Entra ID で、左側のメニューから [アプリの登録] を選択します。
- アプリを選択します。
- 左メニューから [証明書とシークレット] を選択します。
- [新しいクライアント シークレット] を選択します。
- 新しいクライアント シークレットを作成し、その値を保存します。
Note
シークレットの値には、作成直後にのみアクセスできます。 このチュートリアルの次の手順で使用するために、ページを離れる前に値をコピーしてください。
次のように Grafana エンドポイントの URL を見つけます。
- Azure portal で [リソース、サービス、ドキュメントの検索 (G+ /)] バーに「Azure Managed Grafana」と入力します。
- [Azure Managed Grafana] を選択し、Managed Grafana ワークスペースを開きます。
- 左側のメニューから [概要] を選択し、[エンドポイント] の値を保存します。
アクセス トークンを取得する
Grafana API にアクセスするには、アクセス トークンを取得する必要があります。 アクセス トークンは、Azure CLI を使用するか、POST 要求を行って取得できます。
az login コマンドを実行して Azure CLI にサインインし、<client-id>
、<client-secret>
、<tenant-id>
を前の手順で収集したアプリケーション (クライアント) ID、クライアント シークレット、テナント ID に置き換えます。
az login --service-principal --username "<client-id>" --password "<client-secret>" --tenant "<tenant-id>"
コマンド az grafana api-key create を使用してキーを作成します。 出力例を次に示します。
az grafana api-key create --key keyname --name <name> --resource-group <rg> --role editor --output json
{
"id": 3,
"key": "<redacted>",
"name": "keyname"
}
Note
このキーは、ここで 1 回だけ表示できます。 安全な場所に保存してください。
Grafana API を呼び出す
これで、前のステップで取得したアクセス トークンを Authorization ヘッダーとして使って、Grafana API を呼び出すことができます。 次に例を示します。
curl -X GET \
-H 'Authorization: Bearer <access-token>' \
https://<grafana-url>/api/user
<access-token>
および <grafana-url>
は、前の手順で取得したアクセス トークンおよび Grafana インスタンスのエンドポイントの URL に置き換えてください。 たとえば、「 https://my-grafana-abcd.cuse.grafana.azure.com
」のように指定します。
リソースをクリーンアップする
これらのリソースを引き続き使用する予定がなければ、次の手順で削除します。
次のように Azure Managed Grafana を削除します。
- Azure portal の Azure Managed Grafana で、左側のメニューから [概要] を選択します。
- [削除] を選択します。
- リソース名を入力して削除を確認し、[削除] を選択します。
Microsoft Entra アプリケーションを削除する:
- Azure portal の Microsoft Entra ID で、左側のメニューから [アプリの登録] を選択します。
- アプリを選択します。
- [概要] タブで [削除] を選択します。
- [削除] を選択します。