AWS本番環境に構築したAPI Gateway・Lambda・RDS PostgreSQL・Amazon Cognitoの連携について、動作確認と不具合調査を実施した。
今回の主な目的は、次の2点。
GET /api/users/me で発生しているエラーの原因を特定する。調査の結果、RDS PostgreSQLへの接続とユーザー検索は正常に動作していることを確認できた。
一方、Cognitoからユーザー情報を取得する処理でLambdaがタイムアウトしていることが判明した。
そのため、次回はCognitoへの追加API呼び出しをなくす方向で修正する。
今回確認したAPIは次のとおり。
GET /api/users/me
このAPIは、認証済みユーザーの情報をPostgreSQLから取得し、未登録の場合は新しく登録する役割を持つ。
想定している処理は以下。
API Gateway
↓
Lambda(Hono)
↓
JWT認証
↓
RDS PostgreSQL
↓
既存ユーザーを検索
↓
未登録の場合はユーザーを登録
↓
ユーザー情報を返却
本番Cognitoから取得したアクセストークンを使用し、ターミナルからAPIを実行した。
curl -i \
"<https://99izoki1mg.execute-api.ap-northeast-1.amazonaws.com/api/users/me>" \
-H "Authorization: Bearer $ACCESS_TOKEN"
最初のテストでは、以下のレスポンスが返された。