1

我们正在使用内部使用 ActiveMQ 的 Amazon MQ。每当 ActiveMQ 收到消息时,我们都可以触发 AWS lambda 函数。我编写了一个 lambda 函数,它从 SQS 事件中读取消息。我们有一个SQSevent可以捕获的类型,但是对于 Amazon MQ,我不知道要使用哪种类型的函数签名。

对于 SQS,我们使用这个:

ProcessSQSMessage( SQSEvent event1, ILambdaContext context) 

我不知道要为 Amazon MQ 使用什么:

?ProcessMQMessage( ?? )  

请帮忙。我无法从本地访问 AWS,因此在部署代码之前进行检查。

4

1 回答 1

1

目前,根据文档,MQ 没有开箱即用的事件。 要与 AWS 合作,您可以遵循此建议并如所述:

  • 使用带有 Stream 参数的默认处理程序并将 Stream 转换为C# 类消息。这是处理程序的样子:

    public Stream MyHandler(Stream stream, ILambdaContext context)
         {
            //converting Stream into MQEvent and function logic
         }
    
  • 创建ILambdaSerializer的自定义实现。然后用[assembly: LambdaSerializer(typeof(CustomInputDeserializer))]

于 2021-02-10T16:00:47.180 回答