问题标签 [amazon-dynamodb-dax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1260 浏览

amazon-web-services - 在 Lambda 函数中关闭 DAX 客户端

我有一个 node.js 函数,我想将它部署为 AWS Lambda 函数。我注意到当我使用 redis Elasticache 时,我必须关闭我用 redis.createClient 打开的连接,否则 Lambda 函数会超时。我通过简单地调用客户端的 quit() 方法来做到这一点。如果我在发出 Lambda 回调之前执行此操作,则 Lambda 函数会按预期结束。如果我不这样做,则 Lambda 函数会在我设置的任何超时间隔处超时。在测试设置中,我有一个 Lambda 函数,它在缓存上运行并在 30 毫秒内终止。如果不调用 redis 客户端 quit() 方法,相同的 Lambda 函数不会在 1 分钟超时之前终止。我不确定,但我认为 Lambda 函数的行为方式是这样的,因为它没有

我并不关心这个,因为调用 quit() 方法很容易。我遇到的问题是当我尝试使用 DynamoDB DAX 客户端做类似的事情时。我可以让 Lambda 函数通过我的 VPC 终端节点直接访问 DynamoDB,一切正常。如果我使用 DAX 客户端,对表的修改实际上会发生(我插入了一个项目,可以看到它在那里),但 Lambda 函数总是超时。

这是一些示例代码:

如果我只使用 ddbClient,一切正常。如果我使用 daxClient,一切正常(插入、删除、更新等),但 Lambda 函数超时。daxClient 是否有类似的 quit() 方法告诉 DAX 集群我已完成并且可以干净地关闭所有连接?我怀疑这个问题是他们希望 daxClient 的行为与普通 ddbClient 完全一样,并且 ddbClient 没有 quit() 方法。

0 投票
2 回答
3307 浏览

amazon-web-services - 从本地开发机器使用 AWS DynamoDB DAX

我正在为我目前使用 DynamoDB 的应用程序试用 DAX 客户端,发现它仅在 VPC 中受支持。DAX 端点位于 172.31.xy 范围内。

这是否意味着无法从我的本地开发机器测试 DAX 功能,或者是否可以将 DAX 配置为可从 Internet 以某种方式进行测试?还是我坚持使用 SSH 连接到 VPC 中的 EC2?

0 投票
1 回答
1465 浏览

amazon-dynamodb - 如何正确连接 AWS API 网关 -> Lambda -> DAX -> DynamoDB?

我使用 CloudFormation 模板让一切工作得非常好,该模板创建了一个 API 网关,其中包含与 Lambda 函数的代理集成,而后者又可以操作各种 DynamoDB 表。

不过,最近我开始体验到 DynamoDB 的缺点,它是读/写工作者。所以,我想,我将启用 DynamoDB DAX 来加速其缓存。

我在设置 CloudFormation 模板来构建 DAX 集群时没有问题。

但是,当我尝试从 Lambda 函数连接到 DAX 时,我收到了诸如NoRouteException: not able to resolve address. 搜了一圈,原来DAX在VPC里面,Lambda函数当然不能访问。Lambda 函数也必须在 VPC 中。

但是如果我将 Lambda 函数放在 VPC 中,那么 API Gateway 可能无法通过代理集成访问 Lambda 函数。

那么,如何在 VPC 内编排 API Gateway -> Lambda -> DAX?

常见的 API Gateway -> Lambda 模式无法轻松使用 DAX,这似乎很奇怪。VPC 要求是一个真正的杀手,这实际上意味着 DAX 主要只对 EC2 实例有用,而不是 API -> Lambda。

有任何想法吗?

0 投票
2 回答
1173 浏览

amazon-web-services - 如何在 dynamoDB 中对用户进行排名

我们想根据用户的积分给他们排名。我们应该如何使用 DynamoDB 实时实现这一点。我们可能有超过 10000 个用户对超过 10000 个分数进行排序和查询以查找排名似乎很昂贵。请给一些建议。

0 投票
1 回答
2269 浏览

aws-lambda - 间歇性 DynamoDB DAX 错误:集群刷新期间出现 NoRouteException

通过 CloudFormation,我有一个设置,包括 DynamoDB 表、DAX、VPC、Lambdas(位于 VPC 中)、安全组(允许访问端口 8111)等等。

一切正常,除非它不起作用。

我可以在 99% 的时间从我的 VPC 的 Lambda 访问 DAX。除了偶尔他们得到 NoRouteException 错误......看似随机。这是 CloudWatch 的输出,其中单个 Lambda 函数每次都执行完全相同的操作(DAX 获取)。注意它是如何工作的、失败的,然后又是如何工作的:

有什么想法吗?

大概不是 VPC 和安全访问,因为 9/10 次访问完全没问题。我有广泛的 CIDR IP,所以我认为这与 EIN 配置无关……但还有什么?

我唯一的提示是初始错误,指出“在集群刷新期间捕获异常”。究竟什么是“集群刷新”以及它如何导致这些故障?

0 投票
1 回答
644 浏览

amazon-dynamodb-dax - AWS DAX 能否确保处理 dynamoDB 的预置吞吐量错误?

我正在使用 dynamoDB,并且正在读写 ProvisionedThroughputExceededException

我该如何解决这个问题?使用 DAX 可以确保我没有收到此错误吗?

0 投票
2 回答
716 浏览

amazon-web-services - AWS CloudFormation 条件模板验证

我有一个模板可以使用 DynamoDB 和 DAX 为多个区域创建 CloudFormation,例如 us-east-1 和 ap-southeast-1。在为 us-east-1 工作时,此模板不适用于 ap-southeast-1,因为该区域尚不支持 DAX。

我希望这可以使用 来完成Conditions,因此对于一个区域 (us-east-1) 我将同时拥有 DynamoDB 和 DAX,而对于另一个区域 (ap-southeast-1) - 只有 DynamoDB:

但不幸的是,我收到一个错误:

调用 ValidateTemplate 操作时发生错误 (ValidationError):模板格式错误:无法识别的资源类型:[AWS::DAX::Cluster]

无论如何都可以配置这样的模板还是应该创建一个单独的模板?

0 投票
1 回答
503 浏览

node.js - DynamoDB DAX 错误:测试 lambda 时出现 ValidationException

我正在尝试将 DAX 示例 getitem-test.js 作为 lambda 运行。(文档链接)。我修改了代码以从我创建的 daxclient 中读取。但是 daxClient.get 从 lambda 返回错误

START RequestId:bb657a02-05b1-11e8-804d-a1d27ac0e9f7 版本:$LATEST 2018-01-30T11:36:03.363Z bb657a02-05b1-11e8-804d-a1d27ac0e9f7 无法读取项目。错误 JSON:{“time”:1517312163361,“code”:“ValidationException”,“retryable”:true,“requestId”:“AVI5QK8LN9S41B64JTTJVECLR3VV4KQNSO5AEMVJF66Q9ASUAAJG”,“statusCode”:“400”,“_tubeInvalid”:false,“waitForRecoveryBeforeRetrying”:错误的 }

我已经使用 dynamodbclient 设置了 dynamo db 表。设置 VPC、子网等。但我没有运气从 DAX 读取数据。知道可能是什么问题。

以下是我使用的代码:

我可以使用var ddbClient = new AWS.DynamoDB.DocumentClient() 而不是得到结果daxClient

我的 lambda 函数也超时了

0 投票
1 回答
1510 浏览

amazon-dynamodb-dax - DAX 集群无法连接到 dynamodb?错误: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 集群服务器上的日志,或以其他方式找出如何了解导致此错误的原因?

0 投票
1 回答
1246 浏览

node.js - AWS DynamoDB DAX Node.js 示例

有没有人有一个在 node.js 中使用 AWS DynamoDB DAX 的好例子?以及需要考虑什么?(例如 VPC、子网、安全组等)。

我正进入(状态

错误:NoRouteException:没有可用的端点

和部分

错误:ValidationException:所需键之一未指定值

不要将数据存储在缓存中,也不要在数据库中。

谢谢!