【发布时间】:2021-08-16 20:13:39
【问题描述】:
我正在尝试使用将使用 aws sdk SqsClient 和 SnsClient 的 Java 正确编写 aws lambda。我看到这些客户端实现了close() 方法,当不再需要客户端时调用此方法通常是一个好习惯。以及 lambda (https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html) 的最佳实践建议
在函数句柄之外初始化 SDK 客户端和数据库连接
所以,我的问题是:aws lambda 是否足够明智地自动关闭 aws sdk 客户端,这样我就可以编写这样的东西,并且不用担心在关闭 lambda 容器时显式关闭客户端。
public class SQSProcessingHandler implements RequestHandler<String, String> {
private SqsClient sqsClient = SqsClient.create();
@Override
public String handleRequest(final String event, final Context context) {
ListQueuesResponse response = sqsClient.listQueues();
return response.queueUrls().stream().collect(Collectors.joining(","));
}
}
如果仍需要显式关闭,请您帮我看看如何知道 lambda 容器即将关闭,以便我应该在客户端调用 close()?
【问题讨论】:
-
当整个容器关闭时,反正一切都销毁了。
标签: java amazon-web-services aws-lambda autocloseable