Accédez à une adresse IP publique ou à un nom de domaine à l'aide d'une fonction définie par l'utilisateur (UDF) MaxCompute, de Spark, de MapReduce (MR), de PyODPS ou de Mars.
Remarques sur l'utilisation
Noms de domaine de premier niveau pris en charge : aliyun.com, amap.com, dingtalk.com, alicloudapi.com, cainiao.com, alicdn.com, taobao.com, alibaba.com, alipaydev.com et alibabadns.com.
La configuration des adresses IPv6 n'est pas prise en charge. Le nombre d'adresses IP publiques n'est pas limité.
Si la vérification automatique d'une adresse de réseau externe échoue, supprimez l'adresse et soumettez-la à nouveau. Si l'adresse reste requise, soumettez un formulaire de demande pour configurer l'adresse de réseau externe. Pour plus d'informations, consultez la rubrique Processus d'activation du réseau.
Procédure
Étape 1 : Préparer un compte et un projet
Avant d'activer la connectivité réseau entre MaxCompute et le service cible, vérifiez que les conditions suivantes sont remplies.
Créez un projet MaxCompute. Dans un scénario de data lakehouse, définissez le type de données du projet MaxCompute sur un type compatible avec Hive.
Pour accéder à un service cible dans un VPC, vérifiez que le compte propriétaire du VPC, le compte Alibaba Cloud utilisé pour accéder au projet MaxCompute et le compte administrateur de l'environnement ou du cluster du service cible appartiennent au même compte racine.
Étape 2 : Modifier les adresses de réseau externe dans la gestion des projets
Pour les adresses IP publiques ou les noms de domaine fréquemment utilisés, tels que aliyun.com, ajoutez-les et supprimez-les directement dans la section Gestion des projets de la console MaxCompute :
Connectez-vous à la console MaxCompute et sélectionnez une région dans le coin supérieur gauche.
Dans le volet de navigation de gauche, choisissez .
Sur la page Projects, cliquez sur Manage dans la colonne Actions correspondant au projet cible.
Sur la page Project Settings, cliquez sur l'onglet Parameter Configuration.
-
Dans la section MaxCompute External Network, cliquez sur Edit.
Définissez les adresses de réseau externe que MaxCompute est autorisé à atteindre.
Cliquez sur Submit.
Pour les adresses IP publiques ou les noms de domaine dont la vérification automatique a échoué, procédez comme suit :
Soumettez un formulaire de demande pour ajouter les adresses IP publiques, les noms de domaine et les ports à la liste d'autorisation.
-
L'équipe de support technique MaxCompute examine votre demande et effectue la configuration. Le traitement prend généralement trois jours ouvrables. Une fois la demande traitée, passez aux étapes suivantes. Si vous contestez le résultat de l'examen, soumettez un ticket.
Étape 3 : Accéder à l'adresse de réseau public
Lorsque vous utilisez une UDF SQL, Spark ou un job MaxFrame pour accéder au réseau public, ajoutez les configurations suivantes.
Pour les autres types de jobs, adaptez les informations de configuration au type de job.
Jobs de fonction définie par l'utilisateur (UDF) SQL
-
Les paramètres sont définis comme suit :
-- Set the public IP address or domain name and port that you configured in the network connectivity request form. This is the public IP address or domain name that the following SQL statement will access. -- To access multiple domain names or ports, separate them with commas (,). SET odps.internet.access.list=<ip_address:port|realm_name:port>; -- Execute the SQL statement to call the UDF. SELECT <UDF_name>("<http://ip_address|realm_name>"); ip_address:port | domain_name:port : Obligatoire. Adresse IP publique ou nom de domaine et port cibles.
UDF_name : Nom de la UDF utilisée pour accéder à l'adresse IP publique ou au nom de domaine.
-
Le code suivant fournit un exemple de job :
package com.aliyun.odps.test.udf; import com.aliyun.odps.udf.UDF; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class <UDF_name> extends UDF { public String evaluate(String urlStr) throws IOException { URL url = new URL(urlStr); StringBuilder sb = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()))) { String line; while ((line = reader.readLine()) != null) { sb.append(line).append('\n'); } } return sb.toString(); } } -
Exécution : Supposons que le nom de la UDF créée à partir de l'exemple de code soit
url_fetch. Une fois la demande de connectivité réseau approuvée, exécutez les commandes d'exemple suivantes.SET odps.internet.access.list=www.aliyun.com:80; SELECT url_fetch("http://www.aliyun.com");
Jobs Spark on MaxCompute
Ajoutez cet élément de configuration au fichier conf du client Spark ou aux éléments de configuration lors de la soumission d'un job Spark dans DataWorks.
spark.hadoop.odps.cupid.smartnat.enable = true;
spark.hadoop.odps.cupid.internet.access.list=<ip_address:port>
Jobs MaxFrame
Les paramètres sont définis comme suit :
from maxframe import options
options.sql.settings = {
"odps.internet.access.list": "<host>:80,<host>:443",
}
(Facultatif) Étape 4 : Ajouter des adresses IP à la liste d'autorisation
Si le contrôle d'accès est activé côté serveur, ajoutez les adresses IP sortantes utilisées par MaxCompute pour l'accès au réseau public à la liste d'autorisation du service.