通过UDF访问VPC网络资源

MaxCompute默认不支持通过UDF直接访问VPC网络。若您需要在UDF中访问VPC网络资源,必须先建立MaxCompute与目标VPC之间的网络连接,本文以具体示例为您介绍如何通过UDF访问VPC网络资源。

前提条件

请确认您已满足如下条件:

背景信息

通过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网络资源

  1. 安装并登录MaxCompute客户端

  2. 注册函数。

    1. 下载udf-3.jar

    2. 上传上述步骤下载的JAR包,命令示例如下。

      add jar udf-3.jar;
    3. 注册函数,命令示例如下。

      create FUNCTION  t_telnet as 'com.ali.odps.udf.Telnet' USING 'udf-3.jar';
  3. 执行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可正常调用。如果返回报错,请重新确认网络连接信息配置是否正确。