[英]Exception on SubscribeToShard Command
我正在嘗試訂閱來自 Kinesis Shard 的事件。 但是SubscribeToShardCommand
的執行掛了 5 分鍾(訂閱超時),然后拋出錯誤:
(node:2667) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token in JSON at position 0
at JSON.parse (<anonymous>)
at /home/mjpolak/Documents/company/project/node_modules/@aws-sdk/client-kinesis/protocols/Aws_json1_1.ts:4020:19
at processTicksAndRejections (internal/process/task_queues.js:88:5)
at Object.deserializeAws_json1_1SubscribeToShardCommand (/home/mjpolak/Documents/company/project/node_modules/@aws-sdk/client-kinesis/protocols/Aws_json1_1.ts:2583:21)
at /home/mjpolak/Documents/company/project/node_modules/@aws-sdk/middleware-serde/src/deserializerMiddleware.ts:20:18
at /home/mjpolak/Documents/company/project/node_modules/@aws-sdk/middleware-signing/src/middleware.ts:26:22
at StandardRetryStrategy.retry (/home/mjpolak/Documents/company/project/node_modules/@aws-sdk/middleware-retry/src/defaultStrategy.ts:125:38)
at /home/mjpolak/Documents/company/project/node_modules/@aws-sdk/middleware-logger/src/loggerMiddleware.ts:21:20
at /home/mjpolak/Documents/company/project/kinesis-subscribe.ts:85:29
我正在尋找可以讓我成功訂閱的幫助。
完整代碼:
const { StreamDescription } = await client.send(
new DescribeStreamCommand({
StreamName: 'streamName',
}),
);
const { StreamARN } = StreamDescription;
const { Consumers } = await client.send(
new ListStreamConsumersCommand({
StreamARN,
}),
);
let Consumer = Consumers.find((x) => x.ConsumerName == 'tester');
if (Consumer == null) {
const consumerData = await client.send(
new RegisterStreamConsumerCommand({
ConsumerName: 'tester',
StreamARN,
}),
);
Consumer = consumerData.Consumer;
}
console.log(`StreaARM: ${StreamARN}`);
console.log(`Consumer: ${Consumer.ConsumerARN}`);
const { EventStream } = await client.send(
new SubscribeToShardCommand({
ConsumerARN: Consumer.ConsumerARN,
ShardId: 'shardId-000000000000',
StartingPosition: {
Type: 'LATEST'
},
}),
);
console.log("Consuming");
通過調查通過 Wireshark 的通信,我可以確認 HTTP 連接已建立,並且 AWS 將一些數據推送到我的客戶端。 所以我猜測客戶端庫中有某種錯誤會保留塊而不是返回結果。
我還在 SDK 存儲庫上創建了錯誤: https://github.com/aws/aws-sdk-js-v3/issues/2418
Logs shows that error is thrown for JSON parsing and this occurs when you are receiving HTML or XML format response but expected is JSON response. 嘗試在控制台上記錄響應並查看其格式是否正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.