标签: amazon-sqs

当队列中有什么东西时,亚马逊的SQS如何通知我的"工作"服务器?

我正在关注本教程:http://boto.s3.amazonaws.com/sqs_tut.html

当队列中有什么东西时,如何指定我的20名工作人员之一来处理它?

我正在使用Python.

python queue callback amazon-sqs amazon-web-services

14
推荐指数
4
解决办法
1万
查看次数

使用Amazon SQS的最佳做法 - 轮询队列

我正在设计一个服务,用于发送电子邮件给我们的电子商务网站(订单确认,警报等......)计划是使用"SendEmail"方法,生成一大块代表要发送的电子邮件的XML,并坚持使用它在Amazon SQS队列中.我的网络应用程序和其他应用程序将使用它来"发送"电子邮件.

然后我需要一种检查队列的方法,并实际发送电子邮件消息.(我知道我将如何发送电子邮件)

我很好奇是什么"轮询"队列的最佳方式是什么?

我应该创建一个Windows服务,并使用Quartz.net之类的东西来安排它每隔x分钟检查一次队列吗?有没有更好的方法呢?

c# amazon-sqs amazon-web-services

13
推荐指数
2
解决办法
1万
查看次数

SQS只发送一次消息

假设我有100个线程从相同的sqs读取 - 是否保证每条消息最多只能传送一次?是否可以不止一次地传递相同的消息?我找不到关于这个问题的任何明确的文件.小号

amazon-sqs amazon-web-services

13
推荐指数
1
解决办法
7098
查看次数

AWS Lambda的AWS SQS权限

我正在使用AWS SQS服务,而且我很难在SQS队列上定义权限.在我的设置中,我正在使用AWS Lambda服务,该服务在将对象推送到S3存储桶时触发.

但是为了简单地回答我的问题,这就是我想要实现的目标:

  1. 对象被推送到S3存储桶
  2. S3存储桶触发AWS Lambda
  3. Lambda做了一些计算,并将事件推送到我的SQS队列(需要定义权限)
  4. 应用程序从SQS读取

正如您可以从以前的用例中读到的那样,我希望我的AWS Lambda方法成为唯一可以将消息发送到SQS队列的应用程序.我试图设置一个主体和一个条件"sourceArn".但它们都不起作用..

在此输入图像描述

有人可以帮忙吗?

amazon-s3 amazon-sqs amazon-web-services aws-lambda

13
推荐指数
1
解决办法
7210
查看次数

从AWS Lambda读取SQS队列

我有以下基础设施:

我有一个带有NodeJS + Express进程的EC2实例在端口上侦听消息(进程1).每次进程收到消息时,都会将其发送到SQS队列.然后我在同一台机器上有另一个进程使用长轮询读取队列(进程2).当它在队列中找到消息时,它会将数据插入位于RDS实例上的MariaDB数据库中.

(只是为了澄清,消息是由用户生成的,他们发送一大块数据,其中包含任意信息到进程1正在侦听的端点)

现在我想将读取SQS(进程2)的进程放在Lambda函数中,以便写入队列的进程和从队列中读取的进程完全独立.问题是我不知道这是否可行.

我知道Lambda函数是为响应事件而调用的,目前支持的事件是S3,SNS,SES,DynamoDB,Kinesis,Cognito,CloudWatch和Cloudformation,但不是SQS.

我正在考虑使用SNS通知来调用Lambda函数,以便每次将消息推送到队列时,都会触发SNS通知并调用Lambda函数,但在使用它后,我意识到这是不可能的从SQS创建SNS通知,只能将SNS通知写入队列.

现在我有点卡住,因为我不知道如何继续.由于AWS服务的当前限制,我觉得无法创建此基础结构.还有另一种方法可以做我想做的事情,还是我处于死胡同?

只是为了通过我所做的一些研究扩展我的问题,这个github repo展示了如何从Lambda函数读取SQS队列, lambda函数只有在从命令行触发时才有效:

https://github.com/robinjmurphy/sqs-to-lambda

在自述文件中,作者提到了以下内容:

更新:Lambda现在支持SNS通知作为事件源,这使得这个hack完全不需要SNS通知.如果您喜欢使用Lambda函数处理SQS队列上的作业,您可能仍会发现它很有用.

但我认为这不能解决我的问题,SNS通知可以调用Lambda函数,但是当我在SQS队列中收到消息时,我看不到如何创建通知.

谢谢

amazon-ec2 amazon-sqs amazon-web-services aws-lambda

13
推荐指数
1
解决办法
1万
查看次数

如何从Amazon SQS加载流数据?

我使用Spark 2.2.0.

如何使用pyspark将Amazon SQS流提供给spark结构化流?

这个问题试图通过创建自定义接收器来解决非结构化流和scala的问题.
pyspark中有类似的东西吗?

spark.readStream \
   .format("s3-sqs") \
   .option("fileFormat", "json") \
   .option("queueUrl", ...) \
   .schema(...) \
   .load()
Run Code Online (Sandbox Code Playgroud)

根据Databricks上面的接收器可以用于S3-SQS文件源.但是,对于只有SQS,如何才能采用一种方法.

我尝试从AWS-SQS-Receive_Message理解接收消息.但是,如何直接将流发送到火花流还不清楚.

amazon-sqs apache-spark pyspark-sql spark-structured-streaming

13
推荐指数
1
解决办法
2719
查看次数

如何使用AWS X-Ray通过SQS队列跟踪请求

我正在尝试通过AWS Lambda函数启动并运行一个玩具示例f,该函数由一个SQS队列上的消息触发,然后sqs发布到另一个队列sqs',然后由一个工作程序f'读取sqs'并处理该消息,其中整个“ X射线追踪“请求”。

sqs -> f -> sqs' -> f'

目前,我已经准备好队列,并从队列中写入和接收函数。我也有X射线跟踪从第一个函数f到sqs队列的请求。

我当前的挑战是:如何将跟踪信息传播给最终工作人员,以便可以在X射线中看到整个过程。


这是我当前的功能:

public class Hello implements RequestHandler<SQSEvent, Void> {
    String OUTPUT_QUEUE_URL = "...";

    private AmazonSQS sqs = AmazonSQSClientBuilder.standard()
        .withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()))
        .build();

    public Void handleRequest(SQSEvent event, Context context)
    {
        for(SQSMessage msg : event.getRecords()){
            System.out.println(new String(msg.getBody()));
        }

        SendMessageRequest send_msg_request = new SendMessageRequest()
            .withQueueUrl(OUTPUT_QUEUE_URL)
            .withMessageBody("hello world")
            .withDelaySeconds(5);
        sqs.sendMessage(send_msg_request);
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)
public class World implements RequestHandler<SQSEvent, Void>{
    public …
Run Code Online (Sandbox Code Playgroud)

java amazon-sqs amazon-web-services aws-lambda

13
推荐指数
2
解决办法
775
查看次数

Amazon SQS或任何队列服务的可能用例有哪些?

所以我一直在努力掌握亚马逊,__CODE__因为我公司的整个基础设施都是以它为基础的.

我从未能够正确理解的一个组件是__CODE__,我已经搜索了很多但是我无法得到满意的答案.我认为一份__CODE__工作并且__CODE__有些相似,如果我错了,请纠正我.

到底究竟__CODE__是什么?据我所知,它存储了其他组件__CODE__用于执行任务的简单消息,您可以发送消息来执行此操作.

在这个问题中,有人可以向我解释一下普通网络服务中使用的Amazon Web Services组件是什么吗?; 答案提到他们用来__CODE__排队他们想要异步执行的任务.为什么不直接向用户发送消息并稍后进行处理?为什么要等着__CODE__做呢?

另外,我只想说我有一个网络应用程序,允许用户安排一些日常任务,如何__CODE__适应?

amazon-sqs amazon-web-services

12
推荐指数
3
解决办法
6698
查看次数

AWS SQS消息保留期

根据文档,AWS SQS消息保留期的最大值为14天.在那之后,消息将从队列中删除.

SQS是否有任何方式在保留期到期后不丢失这些消息?例如,目前尚不清楚或是否可以为此目的使用死信队列?

amazon-sqs amazon-web-services

12
推荐指数
1
解决办法
7992
查看次数

您可以在哪里更改触发 AWS Lambda 函数的 SQS 队列的批处理大小?

我可以发誓,有一种简单的方法可以更改配置为 Lambda 触发器的 SQS 队列的批量大小,但截至 2020 年 7 月,我再也找不到发生这种情况的地方。这可能与目前在 AWS 顶部宣传的“新 SQS 控制台体验”有关。

我可以看到队列的当前批次大小(屏幕截图),但该数字不可编辑。我也没有在 SQS 界面中看到与批量大小相关的任何内容。我当前的 IAM 凭证可能无法更改批量大小,并且对我隐藏。有谁知道可以在哪里更改此值?

来自 AWS 的屏幕截图,显示当前批次大小的显示位置

amazon-sqs amazon-web-services aws-lambda

12
推荐指数
2
解决办法
3751
查看次数