在用 C# 编写的 AWS Lambda 函数中读取 SNS 消息

Read a SNS message at AWS Lambda Function written in C#

我在 AWS 有一个用 c# 编写的 lambda 函数。此 lambda 函数将读取传入的 SNS 消息。下面是我的 lambda 代码。

public void FunctionHandler(Amazon.Lambda.SNSEvents.SNSEvent.SNSMessage message, ILambdaContext context)
        {                  
            if (message.Message == null)
            {
                Console.WriteLine("message is null");
            }
            else if (message.Message == string.Empty)
            {
                Console.WriteLine("message is empty");
            }
            else
            {
              Console.WriteLine(message.Message);
            }
       }
    }

我已将此 lambda 函数订阅到 SNS 主题。当我发布 SNS 消息时触发了 lambda 函数,但消息始终显示为空。即我得到的输出是:

message is null

谁能帮我阅读 SNS 消息?

来自Amazon.Lambda.SNSEvents

public class Function
{
    public string Handler(SNSEvent snsEvent)
    {
        foreach (var record in snsEvent.Records)
        {
            var snsRecord = record.Sns;
            Console.WriteLine($"[{record.EventSource} {snsRecord.Timestamp}] Message = {snsRecord.Message}");
        }
    }
}

所以,SNSEvent 似乎联系了一个包含 Message.

Records 数组

首先将调试更改为打印 message 而不是 message.Message,然后从那里开始。