vm.gowatana.jp

NEOにほんごVMware(仮)

Aria Hub Free Tier で GraphQL を実行してみる。(Altair GraphQL Client)

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 ヘッダへのトークン設定を、あえて手作業で実施しています。

今回は省略している認証部分の効率化についてはこちらをどうぞ。

 

今回の内容です。

 

あらかじめ、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 を実行してみる話でした。