1

我正在为 dax 使用 Amazon nodejs/javascript 客户端,每次发送查询时,我都会收到此响应(我必须通过插入日志记录语句从代码中挖掘出来):

{ "time": 1517618635321, "code": null, "retryable": false, "requestId": null, "statusCode": -1, "_tubeInvalid": true, "waitForRecoveryBeforeRetrying": false, "codeSeq": [ 4, 23, 31, 34 ] }

显然返回的代码序列甚至不是节点模块似乎理解的代码序列,所以我完全迷失了。

我怀疑是 VPC 网络配置问题或 IAM 问题,但我已经用一把足以去除虱子的细齿梳检查了两者,但我仍然看不到它。

如何解码此错误消息,查找 dax 集群服务器上的日志,或以其他方式找出如何了解导致此错误的原因?

4

1 回答 1

0

[4, 23, 31, 34]PermissionDenied,所以你认为这是一个权限问题的预感是正确的(我会做一个注释来修复映射,这样会更清楚)。

凭证可以作为AWS.Credentialsobject提供,但推荐的方法是从 EC2 实例元数据中获取它们,AWS SDK 和 DAX 客户端将自动执行此操作。这要求您的 EC2 实例具有服务角色,授予它们访问 DAX 的权限。最简单的方法是在控制台中创建一个新角色,以便在 EC2 中使用,并将 AmazonDynamoDBFullAccess 策略附加到它。然后,您使用该角色启动的任何 EC2 实例都将能够访问您的 DAX 集群。

(至于为什么错误是 a NoRouteException,发布的版本有一个过于宽泛的异常处理程序需要清理。)

于 2018-02-06T17:07:11.510 回答