Lambdaで下記のV2からV3のコードに変更しましたが正常に動作しません。
ご教示いただければ幸いです。
V2のコード
const AWS = require("aws-sdk");
const DynamoDB = new AWS.DynamoDB.DocumentClient({ region: "ap-northeast-1" });
const tableName = 'PhoneNumberTable';
exports.handler = async (event) => {
// 発信者番号
const phone = event.Details.ContactData.CustomerEndpoint.Address;
// DynamoDBの一覧取得
const db = await DynamoDB.scan({TableName: tableName}).promise();
// 発信者番号が一覧に存在するかどうかの確認
const result = db.Items.some( item => {
return (item.PhoneNumber == phone);
});
return { result : result };
};
V3のコード
import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb";
import { marshall, unmarshall } from "@aws-sdk/util-dynamodb";
const region = "ap-northeast-1";
const tableName = 'PhoneNumberTable';
const dynamodbClient = new DynamoDBClient({ region: region });
export const handler = async (event) => {
// 発信者番号
const phone = event.Details.ContactData.CustomerEndpoint.Address;
// DynamoDBの一覧取得 const scanParams = { TableName: tableName, }; try { const scanCommand = new ScanCommand(scanParams); const data = await dynamodbClient.send(scanCommand); const db = unmarshall(data.Items); // 発信者番号が一覧に存在するかどうかの確認 const result = db.some(item => { return (item.PhoneNumber === phone); }); return { result: result }; } catch (error) { console.error("Error scanning DynamoDB table:", error); throw error; }
};