我是AWS的亲戚,所以如果这是一个愚蠢的问题,请道歉。
我有一个用Java编写的AWS Lambda。我还有一个接收AWS S3事件消息的SQS队列。然后,我针对SQS队列创建了一个Lambda触发器,以便我的Lambda将S3事件作为SQS消息接收并适当地处理它们。
public class SQSEventHandler implements RequestHandler<SQSEvent, Void> {
@Override
public Void handleRequest(SQSEvent sqsEvent, Context context) {
if (sqsEvent != null) {
LOGGER.debug("Received SQS event: {}", sqsEvent.toString());
... do stuff...
02:54:16 START RequestId: d5454080-8ea3-4c44-93e9-caa5bd903599 Version: $LATEST
02:54:16 [2020-02-13 02:54:16.220] - [d5454080-8ea3-4c44-93e9-caa5bd903599] DEBUG <package>.SQSEventHandler - Received SQS event: {}
02:54:16 END RequestId: d5454080-8ea3-4c44-93e9-caa5bd903599
02:54:16 REPORT RequestId: d5454080-8ea3-4c44-93e9-caa5bd903599 Duration: 1.05 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 161 MB
02:56:16 START RequestId: 9d5acbba-b96c-47e9-81c2-2d448e4ca6e9 Version: $LATEST
02:56:16 [2020-02-13 02:56:16.386] - [9d5acbba-b96c-47e9-81c2-2d448e4ca6e9] DEBUG <package>.SQSEventHandler - Received SQS event: {}
02:56:16 END RequestId: 9d5acbba-b96c-47e9-81c2-2d448e4ca6e9
02:56:16 REPORT RequestId: 9d5acbba-b96c-47e9-81c2-2d448e4ca6e9 Duration: 1.23 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 161 MB
02:58:16 START RequestId: 54bc4fa4-bcaf-4834-9185-09c9c7e2d757 Version: $LATEST
02:58:16 [2020-02-13 02:58:16.451] - [54bc4fa4-bcaf-4834-9185-09c9c7e2d757] DEBUG <package>.SQSEventHandler - Received SQS event: {}
02:58:16 END RequestId: 54bc4fa4-bcaf-4834-9185-09c9c7e2d757
02:58:16 REPORT RequestId: 54bc4fa4-bcaf-4834-9185-09c9c7e2d757 Duration: 1.01 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 161 MB
如您所见,SQS事件对象不为null,但在toString()调用中不生成任何内容。
我不知道是什么问题--任何帮助都将不胜感激。
我不知道,有一个CloudWatch规则被设置为每两分钟向我的Lambda发送一条消息。一旦找到了这个位置,我就禁用了这个规则,Lambda不再被触发。
我试图写一个请求从我的服务器获取消息在使用签名,消息看起来像这样, POST/134148934511/Localhost/?Action=ReceiveMessage 但我收到了一条错误消息(尽管我拥有所需的权限)。(我确信aws版本4的签名过程是正确的(通过S3检查))我做错了什么?
我创建了一个SNS主题,通过cli发布来自Cloudformation的所有信息。然而,当我检查队列时,它没有接收任何SNS消息。我通过订阅我的电子邮件来验证SNS是否正常工作,所以问题似乎出在队列和SNS之间的连接上。然而,我没有发现我的语法有任何问题。一、 据我所知,他们严格遵循了亚马逊的文档。 猛击:
我有一个FIFO SQS队列,可见时间为30秒。要求是尽可能快地读取消息并清除队列。 我有如下所示的JAVA代码(这只是想法的表示,不是完整的代码): 在while循环中,一旦收到消息,就会对其进行处理并将其从队列中删除。但是,很多时候receiveMessageRequest不给我消息(返回零消息)。 此外,在从SQS接收期间,消息限制每次仅为10条,这已经是一个问题,但由于这些零接收,队列正在
(如这张图所示,我有5条消息可用,但我只能收到2条消息。) 我试图删除收到的两条消息中的一条,然后再次轮询。删除的没有了,我收到了新的消息。但总共还是2条消息。
我目前正在使用亚马逊的SQS,在尝试删除当前“正在运行”的队列消息时遇到问题。 下面是一些示例代码: 现在,在接收到句柄和消息体之后,我将接收句柄字符串存储到云存储中(例如DynamoDB)。随后,我从存储服务中加载该句柄,并使用类似于以下内容的方式调用delete: 但是,当运行该行时,我收到一条“输入收据句柄无效”的错误消息。 注意,我知道这条消息没有被重新接收,所以记录的接收句柄应该是最新的
我的公司有一个以JSON格式发送实时消息的消息传递系统,它不是建立在AWS上的,也不会与AWS有任何VPN连接。 我们的团队正在尝试使用AWS SQS接收这些消息,然后DynamoDB将JSON消息处理到TSV,然后加载到RDS中。 但是,根据FAQ,SQS只能从AWS内部接收消息。https://aws.amazon.com/sqs/faqs/ 我在这里的问题是: 我的想法正确吗? 如果正确,您