amazon-sns 相关问题

Amazon Simple Notification Service(Amazon SNS)是一种Web服务,可以轻松地从云中设置,操作和发送通知。它为开发人员提供了高度可扩展,灵活且经济高效的功能,可以从应用程序发布消息并立即将其提供给订阅者或其他应用程序。它旨在使开发人员更轻松地进行Web规模计算。

从 AWS Lambda 发布到 SNS 时超时

我尝试通过 Lambda 函数调用将一些数据发布到 SNS,但它似乎不起作用。我的功能代码是 - 公共类 Handler 实现 RequestHandler 我尝试通过 Lambda 函数调用将一些数据发布到 SNS,但它似乎不起作用。我的功能代码是 - public class Handler implements RequestHandler<DynamodbEvent, Void> { private static final String SNS_TOPIC_ARN = "arn:aws:sns:us-west-2:account_number:function_name"; @Override public Void handleRequest(DynamodbEvent dynamodbEvent, Context context) { LambdaLogger logger = context.getLogger(); AmazonSNSClient snsClient = new AmazonSNSClient(new DefaultAWSCredentialsProviderChain()); snsClient.setRegion(Region.getRegion(Regions.US_WEST_2)); for (DynamodbStreamRecord record : dynamodbEvent.getRecords()) { Map<String, AttributeValue> newImage = record.getDynamodb().getNewImage(); if (newImage == null) { continue; } String sensorId = newImage.get("sensorID").getS(); long timestamp = Long.parseLong(newImage.get("timestamp").getS()); double temperature = Double.parseDouble(newImage.get("payload").getM().get("temp").getN()); String data = sensorId + " " + timestamp + " " + temperature; logger.log(data); PublishRequest publishRequest = new PublishRequest(SNS_TOPIC_ARN, data); PublishResult publishResult = snsClient.publish(publishRequest); logger.log("Publish Successful " + publishResult.getMessageId()); } snsClient.shutdown(); return null; } } 此调用会导致超时(10 秒)并且 lambda 调用失败。如果我注释掉 SNS 发布部分,即如果我只记录从 DynamoDB 收到的数据,它就可以正常工作。一旦添加SNS发布代码,就会超时。 CloudWatch 中记录的超时消息是 - START RequestId: 8db74187-459b-42c5-8a06-b3a74873b236 Version: $LATEST END RequestId: 8db74187-459b-42c5-8a06-b3a74873b236 REPORT RequestId: 8db74187-459b-42c5-8a06-b3a74873b236 Duration: 10001.66 ms Billed Duration: 10000 ms Memory Size: 128 MB Max Memory Used: 37 MB Task timed out after 10.00 seconds 我拥有所有适当的权限,并且我可以使用在我的 PC 上运行的以下代码发布到 SNS - PublishRequest publishRequest = new PublishRequest(SNS_TOPIC_ARN, data); PublishResult publishResult = snsClient.publish(publishRequest); System.out.println("Publish Successful " + publishResult.getMessageId()); 我也尝试过使用 AmazonSNSAsyncClient 而不是 AmazonSNSClient,它给出了相同的结果。 我在这里缺少什么? 好吧,既然评论我问题的人都没有回答,那我自己来回答吧。 将内存使用量增加到 256 MB,并将超时时间增加到 30 秒似乎已经解决了问题。 增加为 Lambda 操作分配的内存量。 增加分配给 lambda 函数的内存也对我有用(此设置位于 lambda 控制台的基本设置下)。 这让我抓狂 - 我对 2 个具有相同配置的不同 lambda 函数使用相同的 JAR 文件,并且 SNS 调用对其中一个有效,但对另一个超时。令人抓狂! 就我而言,问题是网络问题。如果 VPC 缺少 NAT 网关,VPC 中的 lambda 通常无法访问网络。这阻止了 SNS 的触发。 您可以通过为 Amazon SNS 创建 Amazon VPC 终端节点来解决此问题: 在 Amazon VPC 控制台中,创建一个新终端节点 选择 AWS 服务 com.amazonaws..sns 选择您的 lambda vpc、所有子网、安全组 建立此 AWS PrivateLink 后,来自我的 Lambda 函数的 SNS 通知立即生效,无需对 SNS 或 Lambda 本身进行进一步更改。

回答 4 投票 0

通过CloudWatch监控SQS消息

我收到了SNS通知,并且我已经订阅了SQS。我可以轮询我的消息并查看其内容。消息的内容包括自动化的通过/失败状态。 ...

回答 1 投票 0

使用 amazon SNS 向多个用户端点发送推送通知

我有一个功能,可以获取设备端点列表,并且我需要向该列表中的所有设备发送推送通知。该列表是动态的,因为它可以包含任意数量的...

回答 2 投票 0

SalesForce - AWS SNS 集成参考

有 salesforce 和 Amazon SNS 集成的重新参考示例吗?

回答 1 投票 0

AWS Pinpoint 和 AWS SNS 有什么区别?

我是推送通知的新手,并且对此非常感兴趣。我们有 AWS SNS(简单推送通知)和 AWS Pinpoint。 我对 AWS 的这些服务感到困惑。 ...有什么区别

回答 1 投票 0

哪个 AWS 服务触发了 SNS 通知?

我突然收到几封来自我之前订阅的SNS主题的电子邮件通知。但是,我无法找到配置了哪个 AWS 服务来触发 SNS

回答 2 投票 0

AWS SNS 订阅不断删除订阅本身

我使用电子邮件地址的端点订阅了 SNS 主题。 昨晚我收到了退订该主题的通知,我询问了所有可以访问收件箱的人,没有人点击

回答 4 投票 0

如何在CloudFormation脚本中添加SNS主题的邮件订阅?

测试主题订阅: 类型:AWS::SNS::订阅 特性: 端点:[email protected] 协议:电子邮件 TopicArn:!Ref TestSnsTopic 如何添加多个电子邮件 ID 的订阅...

回答 2 投票 0

terraform,aws_sns_topic_policy 使用此处文档作为策略并在此处文档中插入变量

我想使用 terraform 更新我的 sns 目标策略,下面是我的代码。但我的地形计划因以下错误而失败。 预期是表达式的开始,但发现无效的表达式...

回答 1 投票 0

如何在 Windows ec2 实例终止时运行用户脚本?

我想在 Windows 实例终止时使用 SNS 发送一封包含一些用户数据的电子邮件。 一旦我发出终止命令,是否有机会运行一些脚本来发送 SNS 消息? 在李...

回答 1 投票 0

将标准 SQS 订阅到 FIFO SNS 主题

在我们的系统中,一个 SNS 主题有多个订阅者,每个订阅者对消息进行不同的处理。 对于某些订阅者来说,原始事件发生的顺序以及...

回答 1 投票 0

如何确保SNS主题有订阅?

我在 cdk 中定义了一个堆栈,其中包含一个 AWS 账户中的 SNS 主题和另一个 AWS 账户中订阅该主题的 SQS 队列。 我担心会出现订阅失败的情况...

回答 1 投票 0

AWS SNS 订阅中出现意外的“FilterPolicyScope”要求 - 无服务器无效参数,但参数不存在

我有一个SNS FilterPolicy,根据AWS文档,不需要filterPolicyScope。如果未设置,则默认为 MessageAttributes,它说。这就是我已经忍受了很长一段时间的方式

回答 2 投票 0

通过 SDK 创建订阅时,AWS SNS 未附加 Lambda 触发器

我想使用 SNS 订阅来触发 Lambda 函数。 首先,我通过 AWS SDK 创建了一个主题和订阅: 从“@aws-sdk/client-sns”导入{SubscribeCommand};

回答 3 投票 0

如何使用python解析aws lambda中的SNS通知消息

我创建了 SNS 通知主题,以便每次在 aws codepipeline 中部署新代码时接收代码管道成功或失败的通知。我通过订阅收到的消息...

回答 2 投票 0

我应该使用什么类型的 Lambda 事件来处理从 SQS 队列收到的 SNS 消息?

我有一个 SNS 主题,我向其发布 SNS 消息。我订阅了一个 SQS 队列,这又触发了 Lambda 函数。 根据此文档页面,我应该会收到通知

回答 1 投票 0

如果我想通过 SQS 队列处理 SNS 通知,我应该在 lambda 中使用什么类型的事件?

我有一个执行某些操作的 lambda,如果成功,我会发布一个 SNS 通知来广播该事件发生。我订阅了一个 SQS 队列,这又会触发后续操作...

回答 1 投票 0

两个消费者的AWS DLQ,最佳实践是什么?

让应该处理 DLQ 队列消息的 Consumer 还希望额外记录有关 Lambda 发送到 DLQ 的消息的信息。 查看两种可能的解决方案。 从图像上的这两个解决方案...

回答 1 投票 0

用 AWS SNS/SQS/MQ 替换客户端轮询

问题陈述 我有一个应用程序,其中客户端(前端)的数据需要近实时更新。 后端更新数据库中的字段。有一个 GET 端点...

回答 1 投票 0

使用 AWS SNS/SQS 替换客户端轮询

问题陈述 我有一个应用程序,其中客户端(前端)的数据需要近实时更新。 后端更新数据库中的字段。有一个 GET 端点...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.