首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SubscribeToShard命令出现异常

SubscribeToShard命令出现异常
EN

Stack Overflow用户
提问于 2021-05-21 20:41:01
回答 1查看 141关注 0票数 9

我正在尝试订阅Kinesis Shard的活动。但是SubscribeToShardCommand的执行挂起了5分钟(订阅超时),然后抛出一个错误:

代码语言:javascript
代码运行次数:0
运行
复制
(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

我正在寻找帮助,让我订阅成功。

完整代码:

代码语言:javascript
代码运行次数:0
运行
复制
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

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 00:35:14

日志显示JSON解析抛出了错误,当您收到HTML或XML格式的响应,但预期的是JSON响应时,就会发生这种情况。尝试在控制台上记录响应,并查看其格式是否正确。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67637061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档