Ошибка клиента DynamoDB - Ошибка типа: n.transactWrite не является функцией \ n - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь использовать функцию TransactWrite DynamoDB из узла sdk (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#transactWrite -property )

Для моих лямбда-функций, которые вызываются триггерами API Gateway, функция работает должным образом , но для моих лямбда-функций, вызываемых событиями DynamoDB Stream, я получаю следующую ошибку.

TypeError: n.transactWrite is not a function\n

Все лямбда-функции работают в режиме 10.X.

Ниже приведен пример того, как я вызываю функцию с фиктивными данными в иллюстративных целях.


import { DynamoDB } from 'aws-sdk'

const dynamoDb: DynamoDB.DocumentClient = new DynamoDB.DocumentClient({})

const request: DynamoDB.DocumentClient.TransactWriteItemsInput = {
  TransactItems: [{
    Update: {
      TableName: "example",
      Key: {
        partitionKey: "someid",
        sortKey: "somesortkey",
      },
      UpdateExpression: 'set gsi1sk = :gsi1sk',
      ExpressionAttributeValues: {
        ':gsi1sk': "somenewvalue"
      },
          },
  }]
}
 dynamoDb.transactWrite(request)

Существует ли сокращенный набор функций для лямбда-функций, вызываемых DynamoDB? Или используется более старая версия SDK или что-то в этом роде?

1 Ответ

0 голосов
/ 25 марта 2020

Попробуйте использовать

var dynamodb = new aws .DynamoDB ();

вместо

var dynamodb = new aws .DynamoDB.DocumentClient () ;

Источник: https://github.com/aws/aws-sdk-js/issues/2392

...