2017-07-24 98 views
1

我在用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消息吗?

回答

3

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阵列,包含Message

首先更改调试,打印message而不是message.Message,然后从那里取出。