小编mIw*_*IwE的帖子

从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万
查看次数

从另一个 JSON 对象创建 JSON 对象

我不知道标题是否适合我想做的事情。

我有以下对象数组

    array([0]: {category: "10",
                question: "101"},
          [1]: {category: "10",
                question: "102"},
          [2]: {category: "20",
                question: "201"}
    );
Run Code Online (Sandbox Code Playgroud)

我想将所有元素组合成这样:

    array([0]: {category: "10", {question: "101",
                                 question: "102"}},
                category: "20", {question: "201"}});
Run Code Online (Sandbox Code Playgroud)

我不知道这是否可行,或者是否有另一种更好的方法来解决这个问题(也许使用二维数组?)但任何帮助将不胜感激。

谢谢!

抱歉缺少信息,以下是我创建对象数组的方法:

    var arr_sections = [];
    var arr_questions = [];
var jsonObj = [];
$('.ui-sortable-nostyle').each(function(){
    arr_sections.push($(this).attr("sec_id"));              
});

// create json object with pairs category - question 
$(".sortable2").each(function(i){                           
    $(this).children().each(function(j){    
        var cat = arr_sections[i];
        jsonObj.push({
            category: arr_sections[i],
            question: $(this).attr("ques_id")
        });     
    });
});  
Run Code Online (Sandbox Code Playgroud)

并获得了具有以下结构的对象数组:

    [Object, Object, Object, Object, Object]
    0: Object
       category: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery json

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