

下記の参照エラーですが何かの設定が不足していると思われるのですが、何が不足しているのか調べても分かりません。  
よろしくお願いいたします。

エラー内容

[code]

    "errorType": "ReferenceError",
    "errorMessage": "require is not defined in ES module scope, you can use import instead",
    
[/code]

Lambdaコード

[code]

    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 };
    };
    
[/code]


CC BY-SA 4.0
2022-11-24T08:45:23.177
92406
2022-11-24T15:00:07.557
2022-11-24T08:54:57.960
3060
55460
question
aws aws-lambda amazon-dynamodb
DynamoDBに登録されている電話番号のLambdaの判定エラーについて


エラーメッセージから見ると、コードが ES Module として扱われているようなので、require を使う書き方をするなら CommonJS
で扱ってもらう必要がありますね。

コードのファイル名が、index.mjs になっているのではないかと思われるので、これを index.js に変えてみてください。


CC BY-SA 4.0
2022-11-24T15:00:07.557
92413
2022-11-24T15:00:07.557
5959
92406
answer