如何处理来自 AWS SQS 的数据?

How to process data from AWS SQS?

我无法理解 AWS 在 NodeJS 中的工作 SQS。我正在创建一个简单的端点,它接收发送到我的服务器的数据并添加到 SQS 队列:

export const receiveMessageFromSDK = async (req: Request, res: Response) => {
    const payload = req.body;

    try {
        await sqs.sendMessage({
            QueueUrl: process.env.SQS_QUEUE_URL,
            MessageBody: payload 
        }).promise();
    } catch (error) {
        //something else
    }
}

好的,它正常工作并且 MessageBody 正在添加到我的 SQS 队列中。现在我在处理来自该队列的数据时遇到了问题...该怎么做?

在 Google Cloud 中,我正在创建简单的请求队列,并发送(在正文有效负载中)也 url 应该处理来自队列的数据的端点,然后 gcloud 将这个正文发送到这个端点和我的服务器在此数据上启动业务逻辑。但是如何在 SQS 中执行此操作?如何从此队列接收数据并开始处理我这边的数据?

我正在考虑 QueueUrl 参数,但是在文档中写到这个值应该是来自 aws 控制台的 url,比如 https://sqs.eu-central-1.amazonaws.com... 所以我不知道如何处理这个来自我这边队列的数据。

所以...,有人可以帮助我吗?

谢谢,如有任何帮助建议!

Should I call launch this function on cron or AWS can eq. send request on providing from me endpoint with this data etc

SQS 用于 拉取数据 ,这意味着您必须有一个 cron 工作(或您应用程序中的任何等效系统)迭代地拉取您的队列对于使用 receiveMessage 的消息,例如每 10 秒一次。

如果你想要推送式消息系统,那么你必须使用SNS而不是SQS。如果您的应用程序为消息公开任何此类端点,SNS 可以 push messages to your HTTP/HTTPS 自动端点。