【问题标题】:c# Lambda AWS SNS(Notifications) - Unable to publish message to AWS SNSc# Lambda AWS SNS(Notifications) - 无法将消息发布到 AWS SNS
【发布时间】:2021-10-18 13:43:09
【问题描述】:

我无法使用 Lambda 函数向 AWS SNS(通知服务)发布消息。当我在本地机器上测试它时它工作正常,但是一旦我将它部署到 AWS Lambda,它就会挂在“client.Publish(request);”上它不会返回任何结果。

请看下面的代码。

namespace SendAWSNotifications
{
    public class Function
    {
        
        /// <summary>
        /// Publish AWS notification message
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public string FunctionHandler(object input, ILambdaContext context)
        {
            context.Logger.Log("Start");
            var awsKeyId = "AKI**********GOJ";
            var awsKeySecret = "nK9**************eQ8A";
            var awsCredentials = new BasicAWSCredentials(awsKeyId, awsKeySecret);

            var client = new AmazonSimpleNotificationServiceClient(awsCredentials, Amazon.RegionEndpoint.AFSouth1);

            var request = new PublishRequest
            {
                TopicArn = "arn:aws:sns:af-south-1:***************:TestTopic",
                Message = "Test Message20"
            };

            context.Logger.Log("Send");
            var result = client.Publish(request);
            context.Logger.Log("Done");

            return string.Empty;
        }
    }
}

【问题讨论】:

  • 您的 Lambda 可能在无法访问 SNS 或互联网的私有 VPC 中运行。为此,您必须创建一个Interface Endpoint 才能发布到 SNS。另外,请不要在代码中使用机密,Lambda 具有执行角色,您可以为其添加权限以发布到 SNS 主题。
  • 您的 AWS Lambda 函数是否连接到 VPC?如果是这样,是否有特定原因为什么它连接到 VPC?如果没有,请尝试断开连接,看看是否可以解决问题。
  • @ErvinSzilagyi 是的,它在 VPC 中。将尝试添加端点
  • @JohnRotenstein 我删除了 VPC,现在它可以工作了,谢谢!
  • 哦...现在才意识到为什么我要添加到 VPC,我必须连接到我们的 RDS Postgres 数据库。所以我将不得不遵循@ErvinSzilagyi 创建端点的路线。

标签: c# amazon-web-services aws-lambda notifications publish


【解决方案1】:

Amazon SNS 的 API 终端节点位于 Internet 上。您的 Lambda 函数似乎无法访问 Internet。

连接到 VPC 的 AWS Lambda 函数只有在 Lambda 函数连接到私有子网并且公有子网中有 NAT 网关时才能接收 Internet 访问。

连接到 VPC 的 AWS Lambda 函数自动具有 Internet 访问权限。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 2015-11-16
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2016-03-05
    相关资源
    最近更新 更多