首页 > 解决方案 > 与 DynamoDB 的连接在“扫描”中挂起?

问题描述

我们正在安装与 DynamoDB 的连接,它在第一次连接时挂起。我们已将其追溯到对服务的特定调用。

我们有

this.docClient = new AWS.DynamoDB.DocumentClient();

后跟以下代码(位于 Promise 中):

this.docClient.scan(params, (err, data) => {
        if (err) {
          return reject(err);
        }
        for (let i = 0; i < data.Items.length; i += 1) {
          data.Items[i]._id = data.Items[i].id;
        }
        resolve(data.Items);
      });

docClient.scan永远不会调用的回调。我已经追踪到内部并到达node_modules/aws-sdk/lib/request.js

 send: function send(callback) {

    if (callback) {
      // append to user agent
      this.httpRequest.appendToUserAgent('callback');
      this.on('complete', function (resp) {
        callback.call(resp, resp.error, resp.data);
      });
    }
    this.runTo();

    return this.response;
  },

我想这个电话永远不会回来。

据我所知,我们已经正确设置了所有令牌——我们应该如何继续调试它并了解我们哪里出错了?感谢您提供任何线索!

标签: node.jsamazon-web-servicesamazon-dynamodb

解决方案


我相信答案就在~/.aws/credentials文件中。

您从 AWS 控制面板下载的凭证是我从内部控制面板下载的,文件格式如下:

[default]
aws_access_key_id = aaaaaaaaa
aws_secret_access_key = bbbbbbbbbb
AWS_SESSION_TOKEN = ccccccccccccc

我注意到这AWS_SESSION_TOKEN是不同的,即大写,所以我将其更改为小写并且它起作用了。因此,仪表板生成凭据文件似乎存在问题。

[default]
aws_access_key_id = aaaaaaaaa
aws_secret_access_key = bbbbbbbbbb
aws_session_token = ccccccccccccc

我不明白的一件事是那些~/.aws/credentials配置错误的实例有时它不会返回错误,但根本不会返回。在我看来,这是另一个问题。


推荐阅读