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

Pra*_*gar 4 c# amazon-sns aws-sdk .net-core aws-lambda

我用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);
            }
       }
    }
Run Code Online (Sandbox Code Playgroud)

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

message is null
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我阅读SNS消息吗?

Joh*_*ein 7

来自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}");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,似乎SNSEvent联系了一个Records包含的数组Message.

首先将调试更改为print message而不是message.Message从那里开始.