【问题标题】:Read SNS notification in AWS Lambda function written in C#在用 C# 编写的 AWS Lambda 函数中读取 SNS 通知
【发布时间】:2018-09-23 14:39:09
【问题描述】:

我正在阅读以下用 C# 编写的 AWS Lambda 函数中的 SNS 通知。

public string FunctionHandler(SNSEvent snsEvent, ILambdaContext context)
    {
        string retVal = "No Message";
        foreach (var record in snsEvent.Records)
        {
            var snsRecord = record.Sns;
            Console.WriteLine($"[{record.EventSource} {snsRecord.Timestamp}] Message = {snsRecord.Message}");
            retVal = $"[{record.EventSource} {snsRecord.Timestamp}] Message = {snsRecord.Message}";
        }
        return retVal;
    }

我已将 Lambda 函数发布到 AWS,并为该 Lambda 函数订阅了 SNS 主题。

我应该如何测试这个 Lambda 函数。

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-sdk


    【解决方案1】:

    尝试编写小型控制台应用程序,将消息发送到 SNS 主题。您可以使用 Aws SNS nuget package

    应该是这样的:

    var client = new AmazonSimpleNotificationServiceClient(credentials, endpointRegion)
    
    await _client.PublishAsync(new PublishRequest(_topicArn, message));
    

    不要忘记包含您的credentials

    【讨论】:

      【解决方案2】:

      您可以通过 AWS 控制台将测试消息发布到 SNS 主题。

      单击按钮后,您将有各种选项指定 MessageAttributes 和 Message 有效负载。你还会得到一个方便的Json message generator,我推荐它,因为它有时很难坚持使用特定于 SNS 的格式。

      【讨论】:

        【解决方案3】:

        您还可以使用 Postman 将消息发布到 TopicArn,然后检查 Cloudwatch 日志以查找您正在写出的任何 Console.Writeline 日志。

        有关消息格式以及如何将消息发布到 TopicArn 的更多信息,请查看https://docs.aws.amazon.com/sns/latest/api/API_Publish.html

        还有这个 https://docs.aws.amazon.com/sns/latest/dg/sns-http-https-endpoint-as-subscriber.html

        【讨论】:

          猜你喜欢
          • 2017-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-19
          • 2016-06-30
          • 2016-01-12
          • 1970-01-01
          • 2017-12-28
          相关资源
          最近更新 更多