MaxCompute默认不支持通过UDF直接访问VPC网络。若您需要在UDF中访问VPC网络资源,必须先建立MaxCompute与目标VPC之间的网络连接,本文以具体示例为您介绍如何通过UDF访问VPC网络资源。
前提条件
请确认您已满足如下条件:
已编写UDF代码。
更多编写UDF及注册函数操作信息,请参见UDF开发规范与通用流程(Java)或Python UDF。
已安装MaxCompute客户端。
更多安装及配置MaxCompute客户端信息,请参见安装并配置MaxCompute客户端。
背景信息
通过UDF访问VPC网络资源时,需要通过网络开通流程创建MaxCompute与目标VPC网络间的网络连接。创建网络连接后,在使用SQL命令调用UDF前,需要在SQL语句前增加set odps.session.networklink=<networklink_name>;
属性与SQL语句一起提交执行。networklink_name
为创建的网络连接名称。
使用限制
由于专有网络连接方案存在地域限制,仅华北2(北京)、华东2(上海)、华北3(张家口)、华东1(杭州)、华南1(深圳)、中国(香港)、新加坡、德国(法兰克福)、美国(弗吉尼亚)地域支持通过UDF访问VPC网络资源。
步骤一:创建网络连接
登录MaxCompute控制台,在左上角选择地域,然后在租户管理>网络连接中新增网络连接。详细操作指导请参见访问VPC方案(专线直连)。
步骤二:调用UDF访问VPC网络资源
注册函数。
下载udf-3.jar。
上传上述步骤下载的JAR包,命令示例如下。
add jar udf-3.jar;
注册函数,命令示例如下。
create FUNCTION t_telnet as 'com.ali.odps.udf.Telnet' USING 'udf-3.jar';
执行SQL命令调用UDF。
set odps.sql.type.system.odps2=true; --设置网络连接名称,即基于专有网络连接方案配置的网连接名称,仅本Session有效。 set odps.session.networklink=testLink; --执行SQL调用UDF访问VPC网络资源。 select t_telnet("172.16.xxx.xxx",<端口>,<超时时间>);
执行结果返回True,表示网络已连通,UDF可正常调用。如果返回报错,请重新确认网络连接信息配置是否正确。
文档内容是否对您有帮助?