aws-java-sdk 相关问题

AWS SDK for Java为Amazon Web Services提供了Java API。使用SDK,您可以轻松构建适用于Amazon S3,Amazon EC2,DynamoDB等的Java应用程序。

从 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

任何人都可以帮助理解AWS SDK中`needsConnectionLeftOpen`方法的使用吗?

我正在使用 AWS SDK 来调用 appsync 终端节点。但是,我无法理解此javadoc中的needsConnectionLeftOpen的重要性:https://docs.aws.amazon.com/AWSJavaSDK/latest/

回答 1 投票 0

AWSSecurityTokenServiceException:访问被拒绝。用户无权执行 sts:AssumeRole

我是AWS新手。我想为 aws 调用生成临时凭证。为此,我使用使用 IAM 用户临时凭证发出请求 - AWS SDK for Java 中的示例 我经过的地方 字符串

回答 1 投票 0

以编程方式将 AWS 资源类型映射到 AWS 服务

我想在获取 AWS SecurityHub 结果时以编程方式将 AWS 资源类型映射到 AWS 服务。例如,如果 AWS SecurityHub 结果表明受影响的资源为 AwsS3...

回答 1 投票 0

是否可以使用 sdk-for-java 从 AWS 账单中下载发票?如果可以,如何下载?

我一直在查看适用于 Java 的 AWS 开发工具包的文档,并且正在尝试查找如何使用此开发工具包下载每月发票。这有可能吗,还是我在这里追我的尾巴?...

回答 1 投票 0

AWS Route53-如何设置路由策略-使用Java API

当我使用 Java API 创建记录时,默认路由策略似乎是“延迟”。我还没有找到将此策略设置为“简单”的明显方法,例如,。李...

回答 1 投票 0

在 Dynamo 中的全局二级索引上批量加载

有没有办法使用全局二级索引从 DynamoDB 中的表执行批量加载? batchLoad API 只接受 HashKeys,而 queryPage API 只允许你传入一个键。

回答 2 投票 0

springboot 3 reactive cassandra 键空间 DataStax 配置尝试连接本地主机

我正在尝试通过我的 spring-boot-3 多模块软件连接到 amazon-keyspace AWS Casandra,但它尝试连接 localhost / endPoint=/127.0.0.1:9042。 这是我的一些构建 gradle

回答 1 投票 0

如何在 Java AWS SDK 中接收 Cognito 自定义电子邮件发件人触发事件?

我尝试用 JavaScript 编写一个 customEmailSender 函数,似乎该事件包含一个代码参数,该参数包含验证码或临时密码,具体取决于

回答 0 投票 0

VPC 端点创建失败,带有 aws-java-sdk 的 InvalidServiceName

我正在尝试使用 aws-java-sdk“com.amazonaws.services.ec2.model.CreateVpcEndpointRequest”API 创建 VPC 端点。这会因以下问题而失败。这是在私人

回答 0 投票 0

我可以禁用 AWS Cognito 用户池吗?

AWS Cognito 是否有禁用用户池的选项? 当我查看 AWS 控制台时,我没有看到任何类似的东西,尽管如此,我在文档中发现它是用户池的一个属性。

回答 1 投票 0

使用 aws java sdk v2 获取 s3select 的部分 json 响应

我正在尝试在 spring boot 应用程序中实现 s3select 以查询 s3 存储桶中的镶木地板文件,我只从 s3select 输出中获得部分结果,请帮助确定问题,我已经使用了...

回答 2 投票 0

使用AWS Java SDK从S3中读取文本文件。

我想从AWS S3对象存储中读取一个文本文件(然后通过http发送至客户端)。我有AWS CLI命令,它可以将文件复制到本地,但我如何通过SDK做到这一点?我想通过SDK读取...

回答 1 投票 1

如何通过Java SDK使用AWS端口转发会话?

我使用AWSSimpleSystemsManagementAsync启动一个会话,如下所示。地图 > parameters = new HashMap<>(); parameters.put("portNumber", Arrays.asList("80")); ...

回答 1 投票 1

向SQS发布信息时出现错误。亚马逊SQS; 状态码: 403; 错误代码。RequestThrottled

从我的API网关,我正在发布JSON有效载荷到我的一个SQS FIFO队列中,从这个队列中再次被消耗并发布到另一个FIFO队列中。当我从API发布JSON有效载荷时...。

回答 2 投票 0

当使用uploadUrl时,AWS为文件内容添加元数据。

我使用下一段代码来获取uploadUrl的上传指令: public UploadInstruction getUploadUrl() { final var objectKey = getObjectKey(generateUniqueFileKey()); final var url = ...

回答 1 投票 0

面临JAVA sdk中quickSight的CreateDataSource方法中DataSourceId参数的问题。

所以我使用quick sight java SDK来整合s3和quicksight,为此,我使用了CreateDataSource.所以当使用这个方法时,我必须在这个方法中传递一个参数DataSourceId。

回答 1 投票 0

AWS SNS端点在北京时间晚上9点后没有发送短信。

我使用AWS SDK发送短信到手机号码,通过短信发送OTP。我所面临的问题是,根据印度标准,短信只能在白天发送。

回答 1 投票 0

AWS扫描忽略withLimit()

我试图从DynamoDB表中获取项目,并将其放入csv文件中。以下是代码。ArrayList ids = new ArrayList (); ScanResult result = null; ...

回答 1 投票 0

AmazonClientException:读取的数据多于预期

[当我尝试将对象添加到s3时,它给出了AmazonClientException:读取的数据长度与预期的长度不同。但问题是预期长度显示比实际大小大32位。 ...

回答 1 投票 1

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