AWS - Lambda 无法访问 EMR 的 Livy 终端节点

时间:2021-07-16 18:29:36

标签: amazon-web-services lambda amazon-emr livy

作为参考,livy 是用于从集群中提取数据的休息端点。在同一个帐户中,我的 lambda 函数在尝试访问 EMR 使用的活跃端点时总是超时。

端点: http://ip-xxxx-xx-xxx-xx.ec2.internal:8998/

错误:

     "errorMessage": "HTTPConnectionPool(host='ip-xxx-xx-xxxx-xx.ec2.internal', port=`8998`):
Max retries exceeded with url: /batches (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa6613150d0>: Failed to establish a new connection: [Errno 110] Connection timed out'))",

我将 AmazonEMRFullAccessPolicy_v2 添加到 lambda 中,但没有帮助。我错过了什么?这是用于内部访问的正确端点吗?

1 个答案:

答案 0 :(得分:1)

首先,您的 http 端点是 <ip>.ec2.internal。所以我假设它在一些 VPC(非公开)中。所以你的 lambda 必须在同一个 VPC 中。

您正在尝试通过 TCP 连接访问 HTTP 端点,因此您的 lambda 安全组必须被列入 EMR 主节点安全组的白名单。

最后,您不需要 AmazonEMRFullAccessPolicy_v2,因为您没有访问 AWS API。