通過(guò)UDF訪問(wèn)VPC網(wǎng)絡(luò)資源
MaxCompute默認(rèn)不支持通過(guò)UDF直接訪問(wèn)VPC網(wǎng)絡(luò)。若您需要在UDF中訪問(wèn)VPC網(wǎng)絡(luò)資源,必須先建立MaxCompute與目標(biāo)VPC之間的網(wǎng)絡(luò)連接,本文以具體示例為您介紹如何通過(guò)UDF訪問(wèn)VPC網(wǎng)絡(luò)資源。
前提條件
請(qǐng)確認(rèn)您已滿足如下條件:
已編寫(xiě)UDF代碼。
更多編寫(xiě)UDF及注冊(cè)函數(shù)操作信息,請(qǐng)參見(jiàn)UDF開(kāi)發(fā)規(guī)范與通用流程(Java)或Python UDF。
已安裝MaxCompute客戶端。
更多安裝及配置MaxCompute客戶端信息,請(qǐng)參見(jiàn)安裝并配置MaxCompute客戶端。
背景信息
通過(guò)UDF訪問(wèn)VPC網(wǎng)絡(luò)資源時(shí),需要通過(guò)網(wǎng)絡(luò)開(kāi)通流程創(chuàng)建MaxCompute與目標(biāo)VPC網(wǎng)絡(luò)間的網(wǎng)絡(luò)連接。創(chuàng)建網(wǎng)絡(luò)連接后,在使用SQL命令調(diào)用UDF前,需要在SQL語(yǔ)句前增加set odps.session.networklink=<networklink_name>;
屬性與SQL語(yǔ)句一起提交執(zhí)行。networklink_name
為創(chuàng)建的網(wǎng)絡(luò)連接名稱。
使用限制
由于專有網(wǎng)絡(luò)連接方案存在地域限制,僅華北2(北京)、華東2(上海)、華北3(張家口)、華東1(杭州)、華南1(深圳)、中國(guó)(香港)、新加坡、德國(guó)(法蘭克福)、美國(guó)(弗吉尼亞)地域支持通過(guò)UDF訪問(wèn)VPC網(wǎng)絡(luò)資源。
步驟一:創(chuàng)建網(wǎng)絡(luò)連接
登錄MaxCompute控制臺(tái),在左上角選擇地域,然后在租戶管理>網(wǎng)絡(luò)連接中新增網(wǎng)絡(luò)連接。詳細(xì)操作指導(dǎo)請(qǐng)參見(jiàn)訪問(wèn)VPC方案(專線直連)。
步驟二:調(diào)用UDF訪問(wèn)VPC網(wǎng)絡(luò)資源
注冊(cè)函數(shù)。
下載udf-3.jar。
上傳上述步驟下載的JAR包,命令示例如下。
add jar udf-3.jar;
注冊(cè)函數(shù),命令示例如下。
create FUNCTION t_telnet as 'com.ali.odps.udf.Telnet' USING 'udf-3.jar';
執(zhí)行SQL命令調(diào)用UDF。
set odps.sql.type.system.odps2=true; --設(shè)置網(wǎng)絡(luò)連接名稱,即基于專有網(wǎng)絡(luò)連接方案配置的網(wǎng)連接名稱,僅本Session有效。 set odps.session.networklink=testLink; --執(zhí)行SQL調(diào)用UDF訪問(wèn)VPC網(wǎng)絡(luò)資源。 select t_telnet("172.16.xxx.xxx",<端口>,<超時(shí)時(shí)間>);
執(zhí)行結(jié)果返回True,表示網(wǎng)絡(luò)已連通,UDF可正常調(diào)用。如果返回報(bào)錯(cuò),請(qǐng)重新確認(rèn)網(wǎng)絡(luò)連接信息配置是否正確。