已與最近發佈的支持C#lambda的SDK一起工作。我有一個Lambda A發佈的SNS主題設置。這一切工作正常。現在我有了訂閱同一主題的Lambda B.當我觸發Lambda時,觸發了一個Lambda B並傳遞了一條JSON消息。問題是我似乎無法將JSON解析爲Amazon.SimpleNotificationService.Util.Message類型。爲AWS分析SNS消息對象Lambda
我給了這個JSON。
{
"Records": [
{
"EventSource": "aws:sns",
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:.......",
"Sns": {
"Type": "Notification",
"MessageId": "ce4a1d7c-c50d-51ea-bfe8-4dc1078795fe",
"TopicArn": "arn:.......",
"Subject": null,
"Message": "test queue",
"Timestamp": "2016-12-04T07:05:46.709Z",
"SignatureVersion": "1",
"Signature": "<mysighere>",
"SigningCertUrl": "<pem url here>",
"UnsubscribeUrl": "<unsub url here>",
"MessageAttributes": {}
}
}
]
}
所以我試圖做到這一點的代碼(其中MessageText中的類型是「對象」參數,它確實給我的只是「SNS」節點。
var j = Newtonsoft.Json.Linq.JObject.Parse(messageText.ToString());
var sns = jsonData["Records"][0]["Sns"];
Console.Write($"sns object: {sns}");
var message = Message.ParseMessage(sns.ToString());
但ParseMessage調用拋出一個錯誤說SigningCertUrl字段爲空我已經寫出了JSON到cloudwatch,我看到所有的字段已填充
我在哪裏偏離了這裏?我以爲Lambda序列化程序可能只是爲我解析Message參數,我試過所有的屬性null。
什麼Console.Write的'輸出($ 「SNS對象:{} SNS」);' –
?它將對象值保存在較大對象的sns節點......「類型」:「通知」, 「MessageId」:「ce4a1d7c-c50d-51ea-bfe8-4dc1078795fe」, 「TopicArn」 :「arn:.......」, 「Subject」:null, 「Message」:「test queue」, 「Timestamp」:「2016-12-04T07:05:46.709Z」, 「 SignatureVersion「:」1「, 」Signature「:」「, 」SigningCertUrl「:」「, 」UnsubscribeUrl「:」「, 」MessageAttributes「:{} } –
ToddB