Use este método para acessar um endereço IP público ou nome de domínio por meio de uma função definida pelo usuário (UDF) do MaxCompute, Spark, MapReduce (MR), PyODPS ou Mars.
Observações de uso
Domínios de nível superior suportados: aliyun.com, amap.com, dingtalk.com, alicloudapi.com, cainiao.com, alicdn.com, taobao.com, alibaba.com, alipaydev.com e alibabadns.com.
Não é possível configurar endereços IPv6. A quantidade de endereços IP públicos não possui limite.
Caso um endereço de rede externa falhe na verificação automática, exclua-o e envie-o novamente. Se o endereço ainda for necessário, envie um formulário de solicitação para configurar o endereço de rede externa. Para mais informações, consulte Network activation process.
Procedimento
Etapa 1: Preparar uma conta e um projeto
Antes de ativar a conectividade de rede entre o MaxCompute e o service de destino, certifique-se de que as seguintes condições sejam atendidas.
Create a MaxCompute project. Em cenários de data lakehouse, defina o tipo de dados do projeto MaxCompute como compatível com Hive.
Para acessar um service de destino em uma VPC, garanta que a conta proprietária da VPC, a conta Alibaba Cloud usada para acessar o projeto MaxCompute e a conta de administrador do ambiente ou cluster do service de destino pertençam à mesma conta raiz.
Etapa 2: Editar endereços de rede externa no Project Management
Para endereços IP públicos ou nomes de domínio usados frequentemente, como aliyun.com, adicione-os ou exclua-os diretamente na seção Project Management do console do MaxCompute:
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
Na página Projects, clique em Manage na coluna Actions do projeto desejado.
Na página Project Settings, clique na aba Parameter Configuration.
-
Na seção MaxCompute External Network, clique em Edit.
Defina os endereços de rede externa que o MaxCompute tem permissão para acessar.
Clique em Submit.
Para endereços IP públicos ou nomes de domínio que falharem na verificação automática, siga estas etapas:
Envie um formulário de solicitação para adicionar os endereços IP públicos, nomes de domínio e portas à lista de permissões.
-
Após a equipe de suporte técnico do MaxCompute receber sua solicitação, ela será analisada e a configuração concluída. O processamento geralmente ocorre em até três dias úteis. Depois disso, prossiga com as etapas subsequentes. Caso discorde do resultado da análise, abra um ticket.
Etapa 3: Acessar o endereço de rede pública
Ao utilizar uma UDF SQL, Spark ou job do MaxFrame para acessar a rede pública, adicione as configurações abaixo.
Para outros tipos de jobs, ajuste as informações de configuração conforme o tipo específico.
Jobs de função definida pelo usuário (UDF) SQL
-
Configure os parâmetros da seguinte forma:
-- 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: Obrigatório. O endereço IP público ou nome de domínio e porta de destino.
UDF_name: Nome da UDF utilizada para acessar o endereço IP público ou nome de domínio.
-
O código a seguir apresenta um exemplo 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(); } } -
Execução: Suponha que o nome da UDF criada com base no código de exemplo seja
url_fetch. Após a aprovação da solicitação de conectividade de rede, execute os comandos de exemplo abaixo.SET odps.internet.access.list=www.aliyun.com:80; SELECT url_fetch("http://www.aliyun.com");
Jobs Spark on MaxCompute
Adicione este item de configuração ao arquivo conf do cliente Spark ou aos itens de configuração ao enviar um job Spark no DataWorks.
spark.hadoop.odps.cupid.smartnat.enable = true;
spark.hadoop.odps.cupid.internet.access.list=<ip_address:port>
Jobs MaxFrame
Configure os parâmetros conforme abaixo:
from maxframe import options
options.sql.settings = {
"odps.internet.access.list": "<host>:80,<host>:443",
}
(Opcional) Etapa 4: Adicionar endereços IP à lista de permissões
Se o controle de acesso estiver ativado no lado do servidor, adicione os endereços IP de saída usados pelo MaxCompute para acesso à rede pública na lista de permissões do service.