微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Amazon MQ 和 .NET Core Lambda

如何解决Amazon MQ 和 .NET Core Lambda

我们正在使用内部使用 ActiveMQ 的 Amazon MQ。我们可以在 ActiveMQ 收到消息时触发 AWS lambda 函数。我编写了一个 lambda 函数,它从 SQS 事件中读取消息。我们有一个名为 SQSevent 的类型,我们可以捕获它,但在 Amazon MQ 的情况下,我不知道要使用什么类型的函数签名。

对于 SQS,我们使用这个:

ProcessSQSMessage( SQSEvent event1,ILambdaContext context) 

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

?ProcessMQMessage( ?? )  

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

解决方法

目前,根据 docs,MQ 没有开箱即用的事件 要使用 AWS,您可以遵循此 recommendation 并按照以下任一说明操作:

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

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

    装饰你的 lambda 类

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。