Я пытаюсь отправить некоторые данные сегмента в xs aws, но putTraceSegments продолжает сообщать мне «InvalidParameterType: ожидается, что params.TraceSegmentDocuments будет массивом».
Я использовал cloudwatch для записи данных моего сегмента, и они выглядят нормально:
2019-09-26T23:43:16.830Z 754826d6-70b5-4622-944c-08d2f52e8b43
Segment {
trace_id: '1-5d8d4d0e-100cf694a58556ca136cdc6b',
id: 'e77035d5520771c9',
start_time: 1569541389.776,
name: 'Root',
in_progress: true,
counter: 1,
service:
{ runtime: 'node',
runtime_version: 'v8.10.0',
version: 'unknown',
name: 'unknown' },
aws:
{ xray:
{ sdk: 'X-Ray for Node.js',
sdk_version: '2.3.6',
package: 'aws-xray-sdk-core' } },
annotations: { myannotation: 'TEST' },
subsegments:
[ Subsegment {
id: 'ac6b2eeaba417fdf',
name: 'My SubSegment',
start_time: 1569541392.312,
in_progress: true,
counter: 0,
segment: [Circular],
parent: [Circular],
annotations: [Object] } ] }
, но когда я пытался отправить данные сегмента в XRay, он жалуется: InvalidParameterType: Ожидаемый params.TraceSegmentDocumentsбыть приведенным ниже примером кода Array
;
const http = require("http");
const https = require("https");
const AWSXRay = require("aws-xray-sdk-core");
const sdk = require("aws-sdk");
var params = "{ TraceSegmentDocuments: \
{ trace_id: '1-5d8d4d0e-100cf694a58556ca136cdc6b', \
id: 'e77035d5520771c9', \
start_time: 1569541389.776, \
name: 'Root', \
in_progress: true, \
counter: 0, \
service: \
{ runtime: 'node',\
runtime_version: 'v8.10.0',\
version: 'unknown',\
name: 'unknown' },\
aws: { xray: [Object] },\
annotations: { wfdCreateSession: 'TEST' },\
subsegments: [ [Object] ],\
exception:\
{ ex: 'Error Getting Price: Error: Error: No Price Information Found in Reponse',\
cause: 'ac6b2eeaba417fdf' } } }";
const xray = new sdk.XRay();
xray.putTraceSegments(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
Я ожидаю, что данные будут отображаться в аннотации XRay или в исключительной ситуации при выдаче.