はじめに
AWS AppSyncを使い、初めてのGraphQLに挑戦しています。個人的に引っかかった箇所があったため、ノートとして書き留めておきます。
Authentication error
AppSyncには"Queries"という機能があり、ブラウザ上でGraphQLのクエリを記述し、AWS DynamoDBからデータを取得することができます。APIエンドポイントの設定に依存していると思うのですが、GraphQLのクエリを実行する際に以下のようにJWTを要求されることがあります。
エラーを解決する
この場合、実行ボタンの横にあるLogin with User Pools
ボタンをクリックしてユーザーログインを行うことで解決することができます。
ボタンを押すと以下のモーダルが表示されます。
ここで以下の項目を求められます。
- ClientId (User pool Client ID)
- Username
- Password
これらはいったいどこにあるのでしょう?
ClientId (User pool Client ID)
AWS Cognitoにありそうなことが"Login with User Pools"の名前から察することができます。
AWS Cognito > App integration > App client settings から以下の画面にたどり着くことができます。
ここで記載されているID
が該当するIDになります。
Username
該当するUser poolに登録されているUsernameです。自分でサインインしたユーザーを選択してください。
Password
Usernameで設定したユーザーでサインインした時のパスワードを設定します。
Queryを実行してみる
再度AppSyncに行き、Queryを実行してみましょう。"data" : {}
の形で結果が表示されるはずです。
おわりに
AppSyncを理解するのに手間取っていますが、理解できたらGraphQLの理解をするためには便利そうです。みなさんどうやってAppSyncを勉強しているのでしょうか?コメント等で教えて頂けたらありがたいです。