すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:UDFを使用したVPCのリソースへのアクセス

最終更新日:Jan 07, 2025

デフォルトでは、MaxComputeでは、ユーザー定義関数 (UDF) を使用して仮想プライベートクラウド (VPC) のリソースにアクセスすることはできません。 UDFを使用してVPC内のリソースにアクセスする場合は、MaxComputeとVPCの間にネットワーク接続を確立する必要があります。 このトピックでは、UDFを使用してVPC内のリソースにアクセスする方法について説明します。

前提条件

次の要件が満たされていることを確認してください。

  • UDFコードが書かれています。

    UDFコードの記述方法とUDFの登録方法の詳細については、「Java UDF」または「Python 2 UDF」をご参照ください。

  • MaxComputeクライアントがインストールされています。

    MaxComputeクライアントのインストールと設定方法の詳細については、「MaxComputeクライアントのインストールと設定」をご参照ください。

背景情報

UDFを使用してVPCのリソースにアクセスする前に、MaxComputeとVPCの間にネットワーク接続を確立する必要があります。 詳細については、「ネットワーク接続プロセス」をご参照ください。 ネットワーク接続を確立したら、実行するSQL文の前にse t odps.session.net worklink=<networklink_name>; を追加します。 次に、SETコマンドをSQL文とともにコミットして、UDFを呼び出します。 networklink_nameは、確立したネットワーク接続の名前を指定します。

制限事項

VPC接続スキームは、中国 (北京) 、中国 (上海) 、中国 (張家口) 、中国 (杭州) 、中国 (深セン) 、中国 (香港) 、シンガポール、ドイツ (フランクフルト) 、および米国 (バージニア) の各リージョンでのみサポートされています。 したがって、UDFを使用して、これらのリージョンのVPCにデプロイされているリソースのみにアクセスできます。

ステップ1: ネットワーク接続を確立する

MaxCompute コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、[テナント] > [ネットワーク接続] を選択して、MaxComputeと目的のVPCの間にネットワーク接続を確立します。 詳細については、「VPC経由のアクセス (専用接続) 」をご参照ください。

ステップ2: UDFを呼び出してVPCのリソースにアクセスする

  1. MaxComputeクライアントをインストールして起動します。

  2. UDFを登録します。

    1. udf-3.jarをダウンロードします。

    2. ダウンロードしたJARファイルをローカルのMaxComputeクライアントのbinディレクトリに保存し、リソースとしてアップロードします。 コマンドの例は次のとおりです。

      説明

      JARファイルが別のディレクトリにある場合は、ファイル名の前に特定のパスを追加する必要があります。

      add jar udf-3.jar;
    3. UDFを登録します。 サンプルコマンド:

      create FUNCTION  t_telnet as 'com.ali.odps.udf.Telnet' USING 'udf-3.jar';
  3. SQL文を実行してUDFを呼び出します。

    set odps.sql.type.system.odps2=true;
    -- Specify the name of the network connection that you established based on the VPC connection scheme. This setting is valid only for the current session. 
    set odps.session.networklink=testLink;
    -- Execute the following SQL statement to call the UDF to access resources in the VPC: 
    select t_telnet("172.16.xxx.xxx",<Port number>,<Timeout period>); 

    Trueが返されると、ネットワーク接続が確立され、UDFを呼び出すことができます。 エラーが返された場合は、ネットワーク接続情報が正しく設定されているかどうかを確認します。