本帖最后由 一起看海 于 12-27 编辑
当您通过MaxCompute访问位于外网或VPC网络中的目标服务时,默认情况下,MaxCompute与目标服务之间的网络不可达。您需要开通网络连接以便访问外网或VPC中的目标服务(例如指定IP或域名、RDS、HBase集群、Hadoop集群等)。本文为您介绍MaxCompute与目标服务间的网络结构及支持的网络开通方案。 免责声明MaxCompute提供的公网与VPC访问能力目前属于免费服务,存在以下限制: 保障网络连通性,但是对用户代码触发的网络行为,平台可能因为故障切换的原因导致节点重跑,用户需要在代码层面做兼容,建议只做数据读取操作,写操作需要自行防止多次写入可能产生的脏数据。 访问需要经过代理,代理的转发能力有限,尽量使用长连接,并控制节点规模,并发过大或连接过多可能导致网络请求失败。 不保障带宽,因此可能存在任务运行慢情况,平台不承担相应责任。 经过代理后的出口IP有限,因此出现的连接行为异常,此时需要与阿里云技术支持确认。 出口IP存在变更的可能性,被访问的服务不应该开启访问控制,对于针对代理出口配置IP白名单的情况,平台不保障出口IP不变。
重要
如果完成MaxCompute的网络连通后,运行MaxCompute任务时仍然出现了无法访问等问题,可能是运行MaxCompute任务的工具存在网络限制。例如,使用DataWorks进行数据同步或数据清洗时,需保障DataWorks的资源组与数据源网络连通、DataWorks的沙箱白名单没有限制数据源的访问,DataWorks的资源组网络连通与沙箱配置请参见:配置资源组与网络连通。
功能介绍MaxCompute与目标服务间的网络结构及支持的网络开通方案如下:
MaxCompute访问目标服务有如下四种场景: 场景一:访问公网方案。 适用于通过MaxCompute自定义函数(UDF)、Spark 、MR、PyODPS/Mars访问处于公网中的目标IP或域名的场景。对于常用的公网或域名(如aliyun.com),您可以直接通过MaxCompute控制台的项目管理进行添加与删除,无法通过自动校验的公网IP或域名需要您填写表单申请,如果目标IP或域名不存在安全限制,审核通过后即可访问,审核周期为3个工作日内。 说明
当服务端访问的目标公网IP或域名存在安全准入限制时,请联系您组织内对应责任人根据相应的安全限制进行处理,确保MaxCompute访问公网IP或域名不受限制。
场景二:访问VPC方案(专线直连)。 适用于通过MaxCompute SQL、UDF、Spark 、MR、PyODPS/Mars、外部表或基于湖仓一体架构访问处于VPC网络下的RDS、HBase集群、Hadoop集群等场景。您需要登录VPC所属主账号对MaxCompute进行授权,并在MaxCompute控制台创建MaxCompute与VPC网络之间的连接,创建完成后,您可以在控制台下看到MaxCompute创建的ENI网卡,该ENI网卡的访问规则由创建专有网络连接时您提供的安全组控制,以此来建立MaxCompute与目标服务间的网络通路。 说明
场景三:访问部分阿里云服务。 适用于通过MaxCompute SQL、UDF、Spark 、MR、PyODPS/Mars、外部表或基于湖仓一体架构访阿里云OSS、DLF、OTS(Tablestore)、Hologres等服务的场景,连接使用阿里云内部服务提供的经典网络地址。 不同场景下的配置与访问Endpoint详情请参见下文的访问部分阿里云服务章节。
前提条件当您申请开通MaxCompute与目标服务间的网络连接前,请确认已满足以下条件: 已创建MaxCompute项目。如果已有MaxCompute项目,直接使用即可,不必再创建新项目。在湖仓一体场景中,建议设置MaxCompute项目的数据类型为Hive兼容类型。更多创建MaxCompute项目信息,请参见创建MaxCompute项目。 如果需要访问位于VPC网络中的目标服务,请确保VPC所有者账号、访问MaxCompute项目的阿里云账号,以及目标服务环境或集群的管理员账号是同一个主账号或同在一个主账号下。
地域支持情况MaxCompute仅支持在如下地域通过访问公网或VPC网络方案开通网络连接。 方案类型 | 支持地域 | 支持连通的目标 | 访问公网方案 | 华北2(北京) 华东2(上海) 华北3(张家口) 华东1(杭州) 华南1(深圳) 西南1(成都) 中国(香港) 新加坡 德国(法兰克福) 美国(弗吉尼亚)
| 公网IP或域名 | 访问VPC方案(专线直连) | 华北2(北京) 华东2(上海) 华北3(张家口) 华东1(杭州) 华南1(深圳) 中国(香港) 新加坡 德国(法兰克福) 美国(弗吉尼亚)
| VPC IP或域名 RDS HBase集群 Hadoop集群
|
访问公网方案通过项目管理编辑外部网络地址对于常用的公网IP或域名(如aliyun.com),您可以直接通过MaxCompute控制台的项目管理进行添加与删除: 说明
支持的一级域名包括:aliyuncs.com、aliyun.com、amap.com、dingtalk.com、alicloudapi.com、cainiao.com、alicdn.com、taobao.com、alibaba.com、alipaydev.com、alibabadns.com。 如果您遇到某外部网络地址无法通过自动校验的问题,则需要删除该地址后重新提交。如仍有需要,您可以通过提交表单申请的方式,申请配置外部网络地址,具体操作请参见下述的提交申请。
提交申请无法通过自动校验的公网IP或域名需要按照如下步骤进行操作: 提交表单,申请配置公网的IP或域名、端口的白名单。 表单中需要填写目标IP或域名、端口,如果需要访问多个域名或端口,请使用英文逗号(,)分隔。例如访问阿里云域名,需要提供的网络配置信息为www.aliyun.com:80;访问高德服务,需要提供的网络配置信息为restapi.amap.com:443,restapi.amap.com:80。 MaxCompute技术支持团队接收到提交的申请信息后,会进行审核并完成配置。确认处理完毕后(通常处理周期为3个工作日),即可继续执行后续步骤。若对审核结果有异议,您可通过单击申请链接或搜索(钉钉群号:11782920)加入MaxCompute开发者社区钉群与我们沟通交流。
SQL自定义函数(UDF)任务MaxCompute Spark任务参数设置:此配置项需加在Spark客户端的conf文件中或DataWorks提交Spark作业时的配置项中。
spark.hadoop.odps.cupid.smartnat.enable = true;spark.hadoop.odps.cupid.internet.access.list=<ip_address:port>
白名单如果用户服务端有访问控制,需要将MaxCompute访问公网方案的出口IP添加到用户服务白名单,出口IP请钉钉搜索(群号:11782920)联系MaxCompute技术团队获取。 访问VPC方案(专线直连)访问部分阿里云服务适用于通过MaxCompute SQL、UDF、Spark 、MR、PyODPS/Mars、外部表或基于湖仓一体架构访阿里云OSS、DLF、OTS(Tablestore)、Hologres等服务的场景,连接使用阿里云内部服务提供的经典网络地址。 通过外部表访问OSS、OTS如果您创建了OSS或OTS外部表,可以通过OSS、OTS的内网Endpoint访问。 其他通过外部表访问的示例可参考:创建Hologres外部表。
通过UDF访问OSS、OTS如果您调用UDF访问OSS、OTS,只能通过OSS、OTS的公网Endpoint访问,且在使用公网Endpoint访问前,您需要先将对应Endpoint添加至MaxCompute的白名单中。 将待访问的OSS、OTS的公网Endpoint添加至MaxCompute的白名单中。 您可以提交表单,申请将待访问的OSS、OTS的外网Endpoint添加到MaxCompute的白名单中。各地域的公网Endpoint获取详情如下。
使用外网Endpoint访问OSS或OTS。 MaxCompute Spark任务示例可参考:Spark访问OSS。
|