首页 > 解决方案 > AWS - Lambda 无法访问 EMR 的 Livy 端点

问题描述

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

端点: 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,但没有帮助。我错过了什么?这是用于内部访问的正确端点吗?

标签: amazon-web-serviceslambdaamazon-emrlivy

解决方案


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

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

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


推荐阅读