Aria Hub Free Tier に組み込まれている GraphQL クライアント Web UI である「Altair GraphQL Client」で、クエリを実行してみます。先日の Japan VMUG Jun Meeting @DMM での LT「Aria Hub Free Tier のすすめ。」のデモ部分です。
Altair では、環境ごとの変数定義や、Pre-request スクリプトを利用して認証処理を自動化できるのですが、今回はとりあえず単純に GraphQL を実行したいため、Bearer トークン取得や HTTP ヘッダへのトークン設定を、あえて手作業で実施しています。
今回は省略している認証部分の効率化についてはこちらをどうぞ。
今回の内容です。
- 1. VMware Cloud Services API トークンの生成
- 2. Altair GraphQL Client へのアクセス
- 3. API トークンでの認証
- 4. GraphQL クエリの実行
あらかじめ、Aria Hub にログインしてあります。
1. VMware Cloud Services API トークンの生成
Aria Hub への GraphQL クエリでも、VMware Cloud Services の API トークンを利用します。そこで Aria Hub のサービス ロールを付与した API トークンを生成しておきます。
画面右上にあるユーザ名のあたり →「マイ アカウント」を開きます。
「API トークン」タブで、「新しい API トークンの生成」をクリックします。
トークン名とトークンの TLL(有効期限)を入力します。
「範囲の定義」では「Aria Hub」で検索します。そして、サービス ロールの配下にある「VMware Aria Hub」を選択して、「生成」をクリックします。
API トークンをコピーして、テキスト エディタなどに貼り付けて保存しておきます。トークンをコピーすると、「続行」がクリックできるようになり画面を閉じられます。
画面右上のアプリケーション メニュー →「VMware Aria Hub」をクリックして、Aria Hub に戻ります。
2. Altair GraphQL Client へのアクセス
Aria Hub で、「開発者リソース」→「Altair GraphQL クライアント」にある「起動」リンクをクリックします。
これで、Altair の UI が開きます。
3. API トークンでの認証
Aria Hub に GraphQL クエリを実行するため、最初に「authMutation」mutation を実行して、HTTP ヘッダに設定する Bearer トークンを取得しておきます。
3-1. Bearer トークンの取得
Bearer トークンを取得する authMutation は、Altair の画面を開いた際に表示されるQuery 画面にデフォルトで記載されています。そして下記の部分以外はコメントです。
mutation($CSP_USER_TOKEN: String!) { authMutation { headers: generateAccessToken(userToken: $CSP_USER_TOKEN) { authorization } } }
Aria Hub のエンドポイントの URL(下記)はデフォルトで入力されているので、そのまま似しておきます。
authMutation では CSP_USER_TOKEN という変数が指定されているので、画面左下あたりの VARIABLES ウインドウを開いて、変数を定義しておきます。
{ "CSP_USER_TOKEN": "VMware Cloud Services の API トークン" }
これで「Send mutation」(もしくは画面右上あたりの Send Request)をクリックすると、左側の画面に Bearer トークンが表示されるので、テキスト エディタなどに記録しておきます。
ちなみに Bearer トークンは永続的に認証できるわけではないので、定期的に再取得する必要があります。
3-2. HTTP ヘッダの設定
Aria Hub に GraphQL クエリを実行するために、あたらしくウインドウを追加します。
「Add New」をクリックすると、新たに「Window 2」が作成されて選択された状態になります。
画面左端の「*」のようなマークのメニューを開くと、「HEADERS」画面が開きます。ここで、HTTP ヘッダとして Bearer トークンを入力します。
Bearer トークンを入力して、「Save」をクリックします。
- Header key: authorization
- Header value:Bearer ~という長い文字列
4. GraphQL クエリの実行
GraphQL クエリ を、HTTP ヘッダーに Bearer トークン を設定してある「Window 2」のウインドウから実行します。
Query 画面にデフォルトで入力されているクエリ(authMutation の部分)は、いったん削除します。
あらためて、GraphQL クエリを貼り付けます。今回は下記のような、Azure 仮想マシンの情報を取得するクエリを貼り付けます。
query { entityQuery { queryEntities(entityType: "AWS.EC2.Instance") { entities { entityName entityId provider region creationTime } } } }
「Send Request」(もしくは Send query)をクリックすると、右側の画面に取得した結果が表示されます。
以上、Altair で Aria Hub に GraphQL を実行してみる話でした。