我正在创建一个应该写入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