使用 aws-xray-sdk 创建 dynamodb 文档客户端 aws 无服务器时出错



我正在创建一个应该写入dynamodb的函数,我想使用aws-xray-sdk生成跟踪。

我的函数是

private readonly docClient: DocumentClient = AWS.DynamoDB.DocumentClient()
async createTodo(todoItem: TodoItem): Promise<TodoItem> {
await this.docClient.put({
TableName: this.todosTable,
Item: todoItem
}).promise()
return todoItem
}

当我如上所述仅使用来自 aws sdk 的文档客户端时,这非常有效,但由于当我通过 aws-xray-sdk 传递 aws-sdk 并想要使用 sdk 时,我需要跟踪,它会引发错误。 这就是我构建它的方式。

import * as AWS from 'aws-sdk'
import * as AWSXRay from 'aws-xray-sdk'
const XAWS = AWSXRay.captureAWS(AWS)

那么当我这样做时

private readonly docClient: DocumentClient = XAWS.DynamoDB.DocumentClient()我收到错误

TS2339: Property 'DocumentClient' does not exist on type 
'PatchedAWSClientConstructor<ClientConfiguration, typeof DynamoDB>'.

如何消除此错误或可能获得可用于使用 aws-xray 进行跟踪的文档客户端。

依赖。 "aws-xray-sdk": "^2.2.0", "aws-sdk": "^2.433.0",

使用const AWSXRay = require('aws-xray-sdk')对我有用

请使用

import AWSXRay from "aws-xray-sdk-core";

在 AWS X-Ray JS 开发工具包存储库中的类似问题上对此进行了解释:https://github.com/aws/aws-xray-sdk-node/issues/491

最新更新