有没有任何方法可以在AWS NodeJS SDK v3中使用X射线仪器?在sdkv2中,AWSXray能够捕获任何客户机并将其插入仪器以跟踪到XRay中.

const  {DynamoDBClient, ScanCommand} = require("@aws-sdk/client-dynamodb");
const AWSXRay = require("aws-xray-sdk");
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(DynamoDBClient); 

const client = new DynamoDBClient({region: process.env.AWS_REGION});
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(client);

const scan = new ScanCommand({
    TableName: 'xxx',
});
await client.send(scan) //?

但两条 comments 行都有service.customizeRequests is not a function条.这似乎表明AWS SDK s3与原始AWSXRay库不向后兼容.

我发现sdkv3包含XRay客户端,但这只是一个可以将跨距和跟踪发送到AWS的客户端,而不是插装代理.

对于NodeJS,建议使用带AWS SDK v3的X射线仪器的模式是什么?

推荐答案

您需要使用v3兼容x-ray-sdk捕获功能captureAWSv3Client

以下是工作片段:

const {DynamoDBClient, ScanCommand} = require("@aws-sdk/client-dynamodb");
const AWSXRay = require("aws-xray-sdk-core");

const dynamoClient = AWSXRay.captureAWSv3Client(
    new DynamoDBClient({})
)

const scan = new ScanCommand({
    TableName: 'xxx',
});

const response = await dynamoClient.send(scan)

拥有写入X射线的权限也很重要,例如:

Policies:
  - AWSXrayWriteOnlyAccess

Javascript相关问答推荐

类型错误:tasks.map不是函数(MERN堆栈)

为什么子组件没有在reaction中渲染?

如何在dataTables PDF输出中正确渲染字形?

调用SEARCH函数后,程序不会结束

主要内部的ExtJS多个子应用程序

如何修复内容安全策略指令脚本-SRC自身错误?

使用复选框在d3.js多折线图中添加或删除线条

我应该绑定不影响状态的函数吗?'

使用LocaleCompare()进行排序时,首先使用大写字母

使用JQuery单击元素从新弹出窗口获取值

为什么JPG图像不能在VITE中导入以进行react ?

为什么我的按钮没有从&q;1更改为&q;X&q;?

如何确保预订系统跨不同时区的日期时间处理一致?

自定义图表工具提示以仅显示Y值

当代码另有说明时,随机放置的圆圈有时会从画布上消失

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

在D3条形图中对具有相同X值的多条记录进行分组

是否可以将异步调用与useState(UnctionName)一起使用

select 2-删除js插入的项目将其保留为选项

正则表达式以确定给定文本是否不只包含邮箱字符串