如何在 EC2 实例中使用 sqs-consumer 读取 SQS 消息?

问题描述 投票:0回答:1

我有一个

node.js
。在
EC2
实例中运行的守护进程使用
sqs-consumer
库从
SQS
.

读取消息

我遇到的问题是消息被写入 SQS 但它们没有被我的守护进程使用。我没有收到任何错误消息。消息只是停留在

SQS
,我的守护进程似乎没有收到活动通知。

我在

IAM
中添加了一个
EC2
角色,可以完全访问
SQS
,我还在
AWS_ACCESS_KEY_ID
上设置了
AWS_SECRET_ACCESS_KEY
EC2
。我知道这不是问题,因为我已经解决了那个问题(在此之前我在
SQS
凭据上遇到错误)。

这是我使用

SQS
的代码(当然它在 localhost 中就像一个魅力):

const consumer = Consumer.create({
  region: config.sqs.region,
  queueUrl: config.sqs.endpoint,
  shouldDeleteMessages: true,
  handleMessage: (message) => {
    console.log('Processing message: ', message);
  },
});

consumer.on('error', (err) => {
  console.log(err.message);
});

consumer.start();

我错过了什么?

node.js amazon-ec2 amazon-sqs daemon identity-management
1个回答
0
投票

我错过了将以下权限策略分配给

EC2
实例:

AmazonSQSFullAccess

为此,您必须首先创建一个附加了该策略的角色,然后将创建的 IAM 角色分配给实例。如果实例已经在运行,那么重启它非常重要。如果没有,它不会选择新角色。

© www.soinside.com 2019 - 2024. All rights reserved.