Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Access Model Studio APIs over a private network

Última atualização: Sep 18, 2026

Para chamar as APIs do Model Studio a partir de uma VPC sem rotear o tráfego pela internet pública, adicione uma conexão PrivateLink no console do Model Studio e associe-a ao seu workspace.

Como funciona

O gateway do Model Studio oferece os dois métodos de acesso a seguir:

  • Acesso por rede pública: chame as APIs do Model Studio pelo nome de domínio MaaS público {WorkspaceId}.{RegionId}.maas.aliyuncs.com. O tráfego é roteado pela internet pública.
  • Conexão privada via PrivateLink: adicione uma conexão PrivateLink para sua VPC no console do Model Studio e chame as APIs do Model Studio pelo nome de domínio privado. O tráfego permanece na rede da Alibaba Cloud e não atravessa a internet pública.

Após adicionar uma conexão PrivateLink no console do Model Studio, o PrivateLink estabelece uma conexão privada (conexão de endpoint) entre sua VPC e o Model Studio. Essa conexão é unidirecional: os recursos da sua VPC podem acessar o Model Studio, mas o Model Studio não consegue acessar sua VPC por meio dessa conexão.

Quando os recursos da sua VPC acessam o nome de domínio privado, o PrivateLink roteia o tráfego para o Model Studio sem passar pela internet pública.

image

O Model Studio está disponível nas seguintes regiões:

  • Nuvem pública: China (Beijing) e China (Hong Kong).

    O acesso por rede privada ainda não tem suporte em outras regiões.

  1. Faça login no console do Model Studio. No painel de navegação à esquerda, escolha Settings > Network configuration.

  2. Na primeira utilização, conclua os preparativos a seguir no painel Add PrivateLink:

    • Authorize service-linked role for PrivateLink: clique em Authorize Now e depois em Confirm Authorization para criar a função vinculada ao serviço AliyunServiceRoleForBackrouterAccessNet.
    • Activate PrivateLink: clique em Enable Now para ativar o serviço PrivateLink.
  3. Na seção VPC private network access, clique em Add e configure os parâmetros a seguir. Mantenha os demais parâmetros com os valores padrão.

    • Region: selecione a região do seu serviço Model Studio, por exemplo, China (Hong Kong).
    • VPC: selecione a VPC a partir da qual você deseja acessar o Model Studio. A conexão PrivateLink é criada nessa VPC, e somente recursos dessa VPC, como instâncias ECS e contêineres, conseguem alcançar o Model Studio pelo nome de domínio privado. Se nenhuma VPC estiver disponível, clique em Create VPC para criar uma no console de VPC.
    • Zones and Switches: selecione uma zona compatível com o Model Studio que contenha um vSwitch e, em seguida, selecione o vSwitch. A conexão PrivateLink ocupa um endereço IP interno do vSwitch selecionado em cada zona como endereço de resolução DNS interna do nome de domínio privado. É possível adicionar até duas combinações de zona e vSwitch. Adicione duas para obter alta disponibilidade, de modo que o tráfego possa ser transferido se uma zona ficar indisponível. Se nenhum vSwitch estiver disponível, clique em Create Switch para criar um no console de VPC.
    • Security Group: selecione o grupo de segurança a associar à conexão PrivateLink. O grupo de segurança controla quais recursos podem acessar a conexão. Verifique se o grupo de segurança permite tráfego de entrada na porta 443 (HTTPS). Se nenhum grupo de segurança estiver disponível, clique em Create Security Group para criar um no console do ECS.
  4. Clique em Confirm e aguarde até que o Status da conexão mude para Created. A conexão entra em vigor em cerca de 1 a 3 minutos. Depois disso, qualquer servidor cloud na VPC pode usar o nome de domínio privado para acessar o Model Studio.

Um workspace que precisa acessar o Model Studio pela rede privada deve ser associado a uma conexão PrivateLink.

  1. No painel de navegação à esquerda do console do Model Studio, escolha Workspaces e crie um workspace ou edite o workspace desejado.
  2. Em Advanced Configuration, defina PrivateLink como a conexão PrivateLink desejada. Cada opção mostra o ID do endpoint com sua região e VPC. Se a conexão desejada não estiver listada, clique em Create PrivateLink na lista suspensa para criá-la. Após a associação, o workspace pode acessar o Model Studio pela conexão privada da VPC correspondente.
  3. Para remover a associação, edite o workspace, limpe o campo PrivateLink e salve as alterações. Como alternativa, na página Network configuration, expanda a linha da conexão PrivateLink desejada e clique em Unbind na coluna Associated workspace para concluir no workspace correspondente. Uma conexão PrivateLink associada a workspaces não pode ser excluída antes de ser desassociada.

Etapa 3: Obtenha o nome de domínio privado

Após concluir a Etapa 2, um nome de domínio privado é gerado para cada workspace associado. Na página Network configuration, expanda a linha da conexão PrivateLink desejada na lista VPC private network access e copie o nome de domínio privado na coluna Endpoint. A coluna Associated workspace mostra o ID do workspace ao qual o nome de domínio pertence. O nome de domínio privado tem o formato {WorkspaceId}-{VpcId}.{region-id}.maas.aliyuncs.com, em que WorkspaceId é o ID do workspace e VpcId é o ID da VPC à qual a conexão PrivateLink pertence.

Você também pode encontrar o nome de domínio privado na coluna API Host do workspace desejado, na página Workspaces. Após a associação, essa coluna lista o nome de domínio público e o privado.

O nome de domínio privado só pode ser resolvido e acessado dentro da VPC selecionada. Use HTTPS (porta 443) para chamar as APIs do Model Studio. Se nenhum workspace estiver associado, a coluna Endpoint da linha expandida ficará vazia.

Etapa 4: Verifique a conexão

Substitua o nome de domínio no base_url da sua requisição de API pelo nome de domínio privado obtido na etapa anterior e faça a chamada a partir da VPC.

Por exemplo, para chamar o Qwen text model no modo compatível com OpenAI:

  • Antes da substituição: https://{WorkspaceId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions
  • Depois da substituição: https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions

Exemplo de chamada:

# Replace the original domain name with the private domain name from the previous step.
curl -X POST https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-flash",
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Replace the original domain name with the private domain name from the previous step.
    base_url="https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
    model="qwen-flash",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'Who are you?'}],
)
print(completion.model_dump_json())
import os
from http import HTTPStatus
# We recommend that you use DashScope SDK v1.14.0 or later.
import dashscope
from dashscope import Generation

# Replace the original domain name with the private domain name from the previous step.
dashscope.base_http_api_url = "https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/api/v1"
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{
    'role': 'user', 'content': 'Who are you?'
}]
response = Generation.call(
    model="qwen-flash",
    messages=messages,
    result_format='message'
)
if response.status_code == HTTPStatus.OK:
    print(response)
else:
    print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
        response.request_id, response.status_code,
        response.code, response.message
    ))
// We recommend that you use DashScope SDK v2.12.0 or later.
import java.util.Arrays;

import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.utils.JsonUtils;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // Replace the original domain name with the private domain name from the previous step.
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://{WorkspaceId}-{VpcId}.{RegionId}.maas.aliyuncs.com/api/v1");
        Message systemMsg = Message.builder()
                .role(Role.SYSTEM.getValue())
                .content("You are a helpful assistant.")
                .build();
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Who are you?")
                .build();
        GenerationParam param = GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-flash")
                .messages(Arrays.asList(systemMsg, userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(JsonUtils.toJson(result));
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            // Print the error message.
            System.err.println("An error occurred while calling the generation service: " + e.getMessage());
        }
    }
}

Antes de fazer a chamada, você deve get an API key . Para passar a chave de API diretamente no código, substitua $DASHSCOPE_API_KEY pela sua chave de API.

Faturamento

O uso do PrivateLink gera custos adicionais. Para estimativas de custos, consulte Billing of PrivateLink.

Perguntas frequentes

  1. Por que minha instância ECS não consegue acessar as APIs do Model Studio por uma rede privada?

    Verifique os itens a seguir:

    1. Confirme se a instância ECS e a conexão PrivateLink estão na mesma VPC.

      Se a instância ECS estiver em uma VPC diferente, ela não poderá acessar o Model Studio pela rede privada. Nesse caso, configure primeiro as VPC connections.

    2. Verifique se o grupo de segurança associado à conexão PrivateLink permite tráfego de entrada do bloco CIDR da instância ECS na porta 443 (HTTPS).

    3. Verifique o status da conexão PrivateLink.

      O nome de domínio privado só pode ser usado depois que o status da conexão for Created e a conexão entrar em vigor (cerca de 1 a 3 minutos após a criação).

    4. Verifique se o workspace está associado.

      Um nome de domínio privado só é gerado depois que um workspace é associado à conexão PrivateLink. Se a coluna Endpoint da linha expandida estiver vazia, associe o workspace conforme descrito na Etapa 2.

  2. Um endpoint pode ser acessado pela internet pública?

    Não. O PrivateLink estabelece conexões privadas apenas dentro da rede interna da Alibaba Cloud. Endpoints não podem ser acessados pela internet pública, e não é possível associar um EIP a uma ENI de endpoint.

  3. Uma conexão PrivateLink legada precisa ser associada a um workspace?

    Não. Uma conexão PrivateLink legada, criada como endpoint de interface no console do PrivateLink (VPC), é associada a todos os workspaces por padrão. Você pode usá-la para acessar as APIs do Model Studio pela rede privada sem executar a Etapa 2.

    Ao expandir uma conexão legada na página Network configuration, a coluna Endpoint mostra vpc-{region-id}.dashscope.aliyuncs.com (por exemplo, vpc-ap-southeast-1.dashscope.aliyuncs.com), e a coluna Associated workspace indica que a conexão está associada a todos os workspaces. Isso difere do fluxo atual, que lista {WorkspaceId}-{VpcId}.{region-id}.maas.aliyuncs.com para cada workspace associado.

    Não é mais possível criar uma conexão PrivateLink dessa forma. Para adicionar uma, siga a Etapa 1 para criá-la no console do Model Studio e a Etapa 2 para associar os workspaces que precisam de acesso pela rede privada.