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可正常調用。如果返回報錯,請重新確認網路連接資訊配置是否正確。