私はラムダ関数を持っている誰かがDynamoDBのテーブルにエントリを作成し、連携アイデンティティを経由して登録するときにトリガ。
ユーザーが関連付けられたユーザープールを介して登録した(私は投稿の確認を考えていた)とき、同じ機能(またはそれに類似したもの)を発生させたい。 (私がしようとしたもの)
背景
私は、ユーザーのプールに連携アイデンティティをリンクしましたが、Cognitoトリガーにリンクされているラムダは、ユーザーのプールのために呼び出されません。私はそれが同じプロセスをサポートしていないかもしれないと思っていました(この場合ですか?)、確認済みのワークフロートリガーをユーザープールに追加しようとしました。私はCognitoで確認されているように表示されていますが、「{"__type": "NotAuthorizedException"、 "message": "ユーザーは確認できません"}というエラーを返すだけです。
私はドキュメントを見ましたが、多くの明確な例はありません。私が見つけた最高のは、私は次のように基本的なダイナモコールを含有するように改変後の確認に電子メールで送信するものであった:
var doc = require('dynamodb-doc');
exports.handler = function(event, context) {
console.log(event);
if (event.request.userAttributes.email) {
var db = new doc.DynamoDB();
var tableName = 'Users'
var user = {
'id' : event.identityId,
'name' : event.datasetRecords.name.newValue,
'email' : event.datasetRecords.email.newValue,
};
var params = {
'TableName' : tableName,
'Item' : user
};
console.log('Inserting user', params);
db.putItem(params, function(err, data) {
console.log(err, data);
if (err) {
console.log('User insert failure', err);
context.done(err);
} else {
console.log('User insert success', data);
context.done(null, event);
}
});
} else {
// Nothing to do, the user's email ID is unknown
context.done(null, event);
}
};
私は同様の質問を見てきたし、最寄りの私はそれが含まれていませんが、この previous question がわかりました作業コードスニペット。私はいくつかのバリエーションを試しましたが運はありません!
私はまた、他の例で使用されているコールバックを見てきましたので、優先されたコードと動作しているコードがどのように表示されるべきかを明確にすることが良いでしょう!
また、私は次のようないくつかのset responsesを見たように、それは特定の形式でcontext.done内のデータを返すべきかどうかを知りたい:
"response": {
}
感謝を!
ポスト確認トリガでラムダ機能が呼び出されていて、ユーザがまだ確認されていないため、なぜそれが既に確認されたというエラーが表示されないのでしょうか?はい、上記のコードはあなたのリンクの例!私は電子メールsendをデータベースエントリに置き換えました。私もちょうどログだけでそれを試して、まだ問題が発生しました。 –
トリガーを取り除いても問題ありません。上記のコードに問題がありますか?その場合、実際の例を掲載してください。 –