DAX cluster can't connect to dynamodb? Error: NoRouteException: not able to resolve address
DAX cluster can't connect to dynamodb? Error: NoRouteException: not able to resolve address
我正在为 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, 23, 31, 34]
是 PermissionDenied
,所以您认为这是权限问题的预感是正确的(我会记下修复映射以便更清楚)。
凭据可以作为 AWS.Credentials
object 提供,但推荐的方法是从 EC2 实例元数据中获取它们,AWS SDK 和 DAX 客户端将自动执行此操作。这要求您的 EC2 实例具有服务角色,授予它们访问 DAX 的权限。最简单的方法是在控制台中创建一个新角色,供 EC2 使用,并将 AmazonDynamoDBFullAccess 策略附加到它。然后,您使用该角色启动的任何 EC2 实例都将能够访问您的 DAX 集群。
(至于为什么错误是NoRouteException
,发布的版本有一个过于宽泛的异常处理程序需要清理。)
我正在为 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, 23, 31, 34]
是 PermissionDenied
,所以您认为这是权限问题的预感是正确的(我会记下修复映射以便更清楚)。
凭据可以作为 AWS.Credentials
object 提供,但推荐的方法是从 EC2 实例元数据中获取它们,AWS SDK 和 DAX 客户端将自动执行此操作。这要求您的 EC2 实例具有服务角色,授予它们访问 DAX 的权限。最简单的方法是在控制台中创建一个新角色,供 EC2 使用,并将 AmazonDynamoDBFullAccess 策略附加到它。然后,您使用该角色启动的任何 EC2 实例都将能够访问您的 DAX 集群。
(至于为什么错误是NoRouteException
,发布的版本有一个过于宽泛的异常处理程序需要清理。)