无法从Lambda调用AWS DynamoDB DocumentClient上的transactWrite

Ale*_*t83 3 amazon-dynamodb aws-lambda

我有一个lambda函数(node.js),该函数需要在两个DynamoDB表上执行事务。

let ddb = new AWS.DynamoDB.DocumentClient();

  ddb.transactWrite(params, function(err, data) {
    if (err) {
      ...
    }
    else {
      ...
    }
  });
Run Code Online (Sandbox Code Playgroud)

当我尝试使用它时,我收到错误消息:

ddb.transactWrite is not a function
Run Code Online (Sandbox Code Playgroud)

我也尝试使用AWS.DynamoDB.transactWriteItems()获得相同的结果

Mau*_*ice 5

2019年9月更新

Lambda运行时环境已在最近几个月中进行了更新-根据文档,这些是每个运行时环境(包括SDK)的最新SDK版本:

  • nodejs10.x-AWS开发工具包2.488.0
  • nodejs8.10-AWS开发工具包2.488.0
  • python3.7-boto3-1.9.42 botocore-1.12.42
  • python3.6-boto3-1.7.74 botocore-1.10.74
  • ruby2.5-AWS开发工具包3.0.1

旧帖子

文档(重点是我的):

底层的AWS Lambda执行环境包括以下软件和库。

操作系统– Amazon Linux

AMI – amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2

Linux内核– 4.14.77-70.59.amzn1.x86_64

适用于JavaScript的AWS开发工具包– 2.290.0

适用于Python的SDK(Boto 3)– 3-1.7.74 botocore-1.10.74

aws-sdk在撰写本文时,它的最新版本为2.382-Lambda执行环境中的默认版本为5个月。

我刚刚验证了这一点,并且文档是最新的:

console.log("AWS SDK Version " + AWS.VERSION) // AWS SDK Version 2.290.0
Run Code Online (Sandbox Code Playgroud)

DynamoDB Transactions已于大约3个月前于2018年11月宣布

transactWrite该版本极有可能尚未实现-您可能需要包括自己的版本。