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

时间:2017-07-24 13:49:20

标签: c# .net-core aws-lambda aws-sdk amazon-sns

我在AWS上用lambda函数编写了c#。此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函数,但消息始终显示为null。我得到的输出是:

message is null

有人可以帮我阅读SNS讯息吗?

1 个答案:

答案 0 :(得分:6)

来自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似乎联系了包含Records的{​​{1}}数组。

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