現在AWS上でIVR機能を構築しています。
〇やりたいこと
・以下のフローを実現したいと考えています。
1.AmazonConnectに電話。
2.電話にてID(7桁)を入力し、入力内容をAWS Lambdaに引き渡す。
3.AWS Lambdaにて入力内容を予め値が存在するDynamoDBテーブルと照合。
4.電話切断
5.上記IDを所持しているキーの値全てと発信者番号が記載されたメールを、AmazonSMSにて送信
6.処理終了
AmazonConnect,DynamoDB,SMSなど単体は自力で頑張るとして、
3のAWS LambdaでのDBテーブル内検索がなかなかうまくいかず苦労しています。
♢Amazon Connect-DynamoDBでの連携に使用するNode.js
Node.js
1const AWS = require("aws-sdk"); 2const DynamoDB = new AWS.DynamoDB.DocumentClient({ region: "ap-northeast-1" }); 3const tableName = 'テーブル名'; 4 5exports.handler = async (event) => { 6 7// Amazonconnectから、StoredCustomerInput=入力内容7桁を格納 8 const customerID = event.Details.Parameters.StoredCustomerInput; 9// DBのテーブルをScanし、変数dbへ格納 10 const db = await DynamoDB.scan({TableName: tableName}).promise(); 11 12// 格納したcustomerIDが、テーブル内のCustomerID列内に存在すれば、true 13 const result = db.Items.some( item => { 14 return (item.CustomerID == customerID); 15// return (item.CustomerID == customerData); 16}); 17 return { result : result }; 18};
♢DynamoDBテーブル[テーブル名]
DynamoDB
1CustomerID 21111111 32222222 43333333
ログを見ると、DynamoDBにはアクセス出来ており、純粋にテーブル内の値との比較が出来ていない様に見えます。
アバウトになってしまいましたが、コード内についてご助言頂けまでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。