在AWS上用AWS Lambda函数读取SNS消息用C#编写的函数
问题描述:
我在用AWS编写的AWS上有一个lambda函数。该lambda函数将读取传入的SNS消息。以下是我的lambda代码。在AWS上用AWS Lambda函数读取SNS消息用C#编写的函数
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消息吗?
答
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
阵列,包含Message
。
首先更改调试,打印message
而不是message.Message
,然后从那里取出。