amazon-web-services - 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,但没有帮助。我错过了什么?这是用于内部访问的正确端点吗?
解决方案
首先,您的 http 端点是<ip>.ec2.internal
. 所以我假设它在一些 VPC(非公开)中。所以你的 lambda 必须在同一个 VPC 中。
您正在尝试使用 TCP 连接访问 HTTP 端点,因此您的 lambda 安全组必须被列入 EMR 主节点的安全组的白名单。
最后,您不需要,AmazonEMRFullAccessPolicy_v2
因为您没有访问 AWS API。
推荐阅读
- c# - Response.Redirect 导致 localhost 重定向你太多次错误
- excel - Mac 上的 Excel VBA 德语特殊字符编码不正确 (ÄÜÖ)
- c# - C#将双引号替换为十进制值
- list - 如何使用列表类型保存从logstash发送到Redis的大数据?
- javascript - 阻止 iframe 滚动,直到父元素到达 iframe 的顶部/底部
- vba - 如何从 ITypeLib 指针获取 TypeLibInfo?
- node.js - 更新到 Angular 11 后,@angular/cdk 和 @angular/form 构建错误
- java - 在 Java 中生成 JWT 令牌以进行 hasura 授权
- php - 如何更正 PHPstan 错误链接到 ObjectManager
- php - 使用转储时,symfony 探查器不显示