2017-07-24 142 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,然後從那裏取出。