Entoverse

Reactのこと

AWS Lambda TypeError: Cannot read property \'push\' of undefined

AWS lambdaファンクションnodeのバージョン古い(nodejs6.10)を使っているファンクションがあったので、全部Node.js 10.xに入れ替えた。

下記のエラーが出ました。

 "TypeError: Cannot read property 'push' of undefined",

内容を見ると配列の初期化ができてないように見えた。
作ったファンクションでは、処理をどう変えても同じエラーがでた。

エラーの箇所も下記のようにAWS-SDK側のように思えた

at Request.HTTP_DATA (/var/runtime/node_modules/aws-sdk/lib/event_listeners.js:389:35)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)

AWSのサポートに問い合わせし結局解決したのが DynamoDBからデータを取得している間にexports.handlerが終了していたのが原因だった。

DynamoDBawait query().promise();処理に変更した。

Alt text

Node.js DynamoDB 全レコード Scan コード例 - Mjeld Technologies

JavaScript 値が配列(Array)かどうかを判断する - Mjeld Technologies