AWSで自動確認メカニズムを実装しようとしていますが、Lambdaの応答が原因でエラーが発生します。ドキュメントで正しい戻り値の型が見つかりません。
ラムダ:
exports.handler = (event, context, callback) => {
event.response.autoConfirmUser = true;
context.succeed(event.response);
};
例外:
認識できないラムダ出力(サービス:AWSCognitoIdentityProviderService;ステータスコード:400;エラーコード:InvalidLambdaResponseException;リクエストID:5c7a2436-0515-11e7-b971-41a89adf53ea)
Cognito開発者ガイドの PreSignUpトリガーの例 に示されているように、トリガーの最後にcontext.done(null, event);
またはcontext.succeed(event);
を使用する必要があります。
Cognitoは、さまざまなCognitoユーザープールフローの一部として呼び出されるラムダトリガーからの応答として、完全なイベントソースが返されることを期待しています。
Rubyラムダの人々、cognitoが戻したいのはイベントオブジェクトだけです。
def lambda_handler(event:, context:)
# TODO implement
return event
end
とてもシンプルです。
このコードでLambda関数を作成します: 例
exports.handler = function(event, context) {
/* This Lambda function returns a flag to indicate if a user should be auto-confirmed.
Perform any necessary validations.Impose a condition that the minimum length of the
username of 5 is imposed on all user pools. */
if (event.userName.length < 5) {
var error = new Error('failed!');
context.done(error, event);
}
/* Access your resource which contains the list of emails of users who were invited to
sign up. Compare the list of email IDs from the request to the approved list */
if(event.userPoolId === "yourSpecialUserPool") {
if (event.request.userAttributes.email in listOfEmailsInvited) {
event.response.autoConfirmUser = true;
}
}
// Return result to Cognito
context.done(null, event);
};
注:役割:Lambdaの基本的な実行
テスト3.APIを使用してユーザーを作成し、完了します。