デフォルトでは、MaxCompute はユーザー定義関数 (UDF) から仮想プライベートクラウド (VPC) への直接アクセスを許可していません。UDF から VPC 内のリソースにアクセスするには、まず MaxCompute とターゲット VPC 間にネットワーク接続を確立する必要があります。このトピックでは、UDF から VPC リソースにアクセスする方法について説明します。
前提条件
以下の条件を満たしていることを確認してください。
-
UDF コードを作成済みであること。
UDF の作成と登録方法の詳細については、「Java UDFs」または「Python UDF」をご参照ください。
-
MaxCompute クライアントをインストール済みであること。
MaxCompute クライアントのインストールと設定方法の詳細については、「Install and configure the MaxCompute client」をご参照ください。
背景情報
UDF から VPC リソースにアクセスするには、MaxCompute とターゲット VPC 間にネットワーク接続を作成する必要があります。詳細については、「Create a network connection」をご参照ください。ネットワーク接続を作成した後、UDF を呼び出す SQL ステートメントの前に set odps.session.networklink=<networklink_name>; プロパティを追加し、SQL ステートメントと合わせて送信します。networklink_name は、作成したネットワーク接続の名前です。
制限事項
リージョン固有の制限により、UDF から VPC リソースにアクセスできるのは、China (Beijing)、China (Shanghai)、China (Zhangjiakou)、China (Hangzhou)、China (Shenzhen)、China (Hong Kong)、Singapore、Germany (Frankfurt)、US (Virginia) のリージョンのみです。
ステップ 1: ネットワーク接続の作成
MaxCompute コンソールにログインします。左上隅でリージョンを選択します。左側のナビゲーションペインで、テナント管理 > ネットワーク接続 の順に選択し、ネットワーク接続を作成します。詳細な手順については、「Create a network connection」をご参照ください。
ステップ 2: UDF による VPC リソースへのアクセス
-
関数を登録します。
-
udf-3.jar をダウンロードします。
-
ダウンロードした JAR ファイルをローカルの MaxCompute クライアントのインストールディレクトリの
binディレクトリに配置します。次に、以下のコマンドを実行して 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; -- VPC に設定されたネットワーク接続の名前を指定します。この設定は現在のセッションに対してのみ有効です。 set odps.session.networklink=testLink; -- SQL ステートメントを実行して UDF を呼び出し、VPC リソースにアクセスします。 select t_telnet("172.16.xxx.xxx",<port>,<timeout>);コマンドが
Trueを返す場合、ネットワーク接続が確立され、UDF を呼び出すことができます。エラーが発生した場合は、ネットワーク接続の設定を確認してください。