私は現在、Java を使用して記述された Lambda 関数を結び付ける API ゲートウェイをセットアップしています。JavaScript SDK を使用して API Gateway エンドポイントを呼び出していますが、それらは Lambda 関数に正しく中継されています。ただし、次の方法で Cognito ID ID にアクセスしようとすると:
context.getIdentity()
次の応答が返されます。
lambdainternal.api.LambdaCognitoIdentity@xxxxxx
私が走れば
context.getIdentity().getIdentityId()
ロガーに空の文字列を返すだけです。コンテキストにパススルーするリクエストを行っているユーザーの ID ID を取得するために何をする必要があるのか わかりません。
次の方法で Javascript AWS Api クライアントを生成しています。
var apiClient = apigClientFactory.newClient({
accessKey: credentials.accessKeyId,
secretKey: credentials.secretAccessKey,
sessionToken: credentials.sessionToken,
region: 'us-east-1'
});
ラムダ関数は IAM ポリシーを使用して保護されており、ユーザーはラムダ関数にアクセスできるため、認証は正しく機能しています。何らかの理由で IdentityId を提供していないだけです。