【问题标题】:Add to SQS from Lambda without SNS?从没有 SNS 的 Lambda 添加到 SQS?
【发布时间】:2018-11-13 16:59:37
【问题描述】:

我是否有一种简单的方法可以从 AWS lambda 添加到 AWS SQS 队列?

从我的谷歌搜索研究结果来看,建议的工作流程似乎是发布到 SNS 主题,然后可以将消息推送到队列。

问题:是否有理由在SQS 之上使用SNS 而不是仅使用SQS

上下文(仅供参考): 我的情况是我使用 SQS 作为记录器队列。我需要将日志从 lambda 推送到此队列。

【问题讨论】:

  • 是的,你可以这样做。您必须通过 lambda 向 SQS 发送消息。您不需要设置 SNS -> SQS。如果你想用 node js sdk 做到这一点,那么我可以提供一个 sn-p。让我知道!
  • 我认为SQS之上的SNS只是为了提高灵活性。 SNS 可以一次将消息发送到多个 AWS 服务 (SQS)。
  • @ChouW 是的,这当然是一个好处,而不会增加太多复杂性。事实上,考虑到从 Lambda 发送 SNS 与将消息直接推送到 SQS(需要显式 authN)相比是多么简单,使用 SNS 甚至可能是一种更简单的方法

标签: amazon-web-services aws-lambda amazon-sqs amazon-sns


【解决方案1】:

可以从 Lambda 推送到 SQS,您可以尝试理解下面的代码,不确定它是否有帮助

 public async Task<string> FunctionHandler(ILambdaContext context, int count )
        {
            {
                StringBuilder sb = new StringBuilder(1024);
                using (StringWriter sr = new StringWriter(sb))

                {
                    try
                    {                  
                        var credentials = new BasicAWSCredentials("AWS_ACCESS_KEY", "AWS_SECRET_KEY");
                        var client = new AmazonSQSClient(credentials, RegionEndpoint.EUWest1);

                        SendMessageRequest request = new SendMessageRequest();
                        request.DelaySeconds = 0;
                        request.QueueUrl = "queue url";
                        request.MessageBody = "text of what you logging to SQS";
                        for (int i = 0; i < count; i++)
                        {
                            SendMessageResponse response = client.SendMessageAsync(request);
                        }
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                    return "";
                }
            }
        }

【讨论】:

  • 您必须手动导入库吗?还是 lambda 沙箱环境中已经提供了用于向 SQS 发送消息的库?
  • 我在 .Net Core 上为 AWSSDK.SQS 使用 nuget 包
【解决方案2】:

您可以只使用 AWS 开发工具包将您的消息发送到您的 SQS 队列。这里没有魔法。

【讨论】:

  • 这只是我问题的一部分。
  • 我在问在 SQS 之上使用 SNS 有什么好处,这些好处是否值得增加架构的复杂性
猜你喜欢
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-24
  • 1970-01-01
  • 2020-04-27
  • 2019-08-24
  • 1970-01-01
相关资源
最近更新 更多