Par défaut, MaxCompute n'autorise pas les fonctions définies par l'utilisateur (UDF) à accéder directement à un Virtual Private Cloud (VPC). Pour accéder aux ressources d'un VPC depuis une UDF, établissez d'abord une connexion réseau entre MaxCompute et le VPC cible. Cette rubrique explique comment accéder aux ressources VPC depuis une UDF.
Prérequis
Assurez-vous de remplir les conditions suivantes :
-
Vous avez écrit le code de l'UDF.
Pour plus d'informations sur la rédaction et l'enregistrement des UDF, consultez les rubriques Java UDFs ou Python UDF.
-
Vous avez installé le client MaxCompute.
Pour plus d'informations sur l'installation et la configuration du client MaxCompute, consultez la rubrique Install and configure the MaxCompute client.
Contexte
Pour accéder aux ressources VPC depuis une UDF, créez une connexion réseau entre MaxCompute et le VPC cible. Pour plus d'informations, consultez la rubrique Create a network connection. Après avoir créé la connexion réseau, ajoutez la propriété set odps.session.networklink=<networklink_name>; avant l'instruction SQL qui appelle l'UDF, puis soumettez-les ensemble. networklink_name correspond au nom de la connexion réseau que vous avez créée.
Limites
En raison de limitations spécifiques à certaines régions, vous ne pouvez accéder aux ressources VPC depuis une UDF que dans les régions suivantes : Chine (Pékin), Chine (Shanghai), Chine (Zhangjiakou), Chine (Hangzhou), Chine (Shenzhen), Chine (Hong Kong), Singapour, Allemagne (Francfort) et États-Unis (Virginie).
Étape 1 : Créer une connexion réseau
Connectez-vous à la console MaxCompute. Dans le coin supérieur gauche, sélectionnez une région. Dans le volet de navigation de gauche, choisissez Tenants > Network Connection pour créer une connexion réseau. Pour obtenir des instructions détaillées, consultez la rubrique Create a network connection.
Étape 2 : Accéder aux ressources VPC via une UDF
-
Enregistrez la fonction.
Téléchargez le fichier udf-3.jar.
-
Placez le fichier JAR téléchargé dans le répertoire
binde votre installation locale du client MaxCompute. Exécutez ensuite la commande suivante pour télécharger le fichier JAR en tant que ressource.RemarqueSi le fichier JAR se trouve dans un autre répertoire, incluez le chemin complet dans la commande.
add jar udf-3.jar; -
Exécutez la commande suivante pour enregistrer la fonction :
create FUNCTION t_telnet as 'com.ali.odps.udf.Telnet' USING 'udf-3.jar';
-
Exécutez une instruction SQL pour appeler l'UDF.
set odps.sql.type.system.odps2=true; -- Specify the name of the network connection configured for the VPC. This setting is valid only for the current session. set odps.session.networklink=testLink; -- Run the SQL statement to call the UDF and access the VPC resource. select t_telnet("172.16.xxx.xxx",<port>,<timeout>);Si la commande renvoie
True, la connexion réseau est établie et vous pouvez appeler l'UDF. En cas d'erreur, vérifiez la configuration de votre connexion réseau.