Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Acesse serviços de LLM por meio de um gateway de entrada do ASM

Última atualização: Jun 28, 2026

O Service Mesh (ASM) permite acessar serviços externos de Large Language Model (LLM) por meio de um gateway de entrada. Ao rotear solicitações pelo gateway do ASM, você aproveita recursos avançados, como divisão de tráfego, observabilidade de requisições e mecanismos robustos de autenticação e autorização. Este tópico descreve como um cliente fora do cluster acessa um serviço externo de LLM usando um gateway de entrada do ASM.

Visão geral

Acessar serviços externos de LLM por um gateway de entrada é ideal quando clientes fora do cluster precisam se conectar a eles. O gateway do ASM oferece uma ampla variedade de recursos de roteamento, segurança e observabilidade, além de suportar o gerenciamento de tráfego de LLM. Com o gateway do ASM, você integra serviços externos de LLM com rapidez e segurança.

O rastreamento da solicitação no exemplo deste tópico é o seguinte:

image

Pré-requisitos

Etapa 1: Crie o LLMProvider

  1. Crie um arquivo chamado 'LLMProvider.yaml' com o seguinte conteúdo:

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMProvider
    metadata:  
      name: dashscope-qwen
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          istio: ingressgateway
      host: dashscope.aliyuncs.com
      path: /compatible-mode/v1/chat/completions
      configs:
        defaultConfig:
          openAIConfig:
            model: qwen1.5-72b-chat  # Qwen open-source series large language model
            stream: false
            apiKey: ${API_KEY}
  2. Para criar o LLMProvider, execute o comando abaixo usando o arquivo kubeconfig do seu cluster ASM:

    kubectl apply -f LLMProvider.yaml

Etapa 2: Crie a regra do gateway

  1. Crie um arquivo chamado 'ingress-gw.yaml' com o conteúdo a seguir:

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: ingress-gw
      namespace: istio-system
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 80
            protocol: HTTP
  2. Execute o comando a seguir para criar a regra do gateway:

    kubectl apply -f ingress-gw.yaml

Etapa 3: Crie o LLMRoute

  1. Crie um arquivo chamado 'dashscope-route.yaml' com o conteúdo abaixo:

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMRoute
    metadata:  
      name: dashscope-route
    spec:
      host: "*"
      gateways:
      - istio-system/ingress-gw
      rules:
      - name: ingress-route
        matches:
        - headers:
            host:
              exact: dashscope.aliyuncs.com  # Routes requests for dashscope.aliyuncs.com. Otherwise, a 404 error is returned.
        - headers:
            host:
              exact: test.com # Routes requests for test.com. After the request is processed by the ASM LLM plugin, it re-triggers route matching, causing the request to match the rule above.
        backendRefs:
        - providerHost: dashscope.aliyuncs.com
  2. Execute o comando a seguir para criar o LLMRoute:

    kubectl apply -f dashscope-route.yaml

Etapa 4: Testar a configuração

Execute o comando abaixo no terminal local para validar a configuração:

curl --location '${INGRESS_GATEWAY_IP}:80' --header 'Content-Type: application/json' --header "host: test.com" --data '{
    "messages": [
        {"role": "user", "content": "Tell me about yourself"}
    ]
}'

Saída esperada:

{"choices":[{"message":{"role":"assistant","content":"I am a Large Language Model from Alibaba Cloud, and my name is Qwen. My main function is to answer user questions, provide information, and engage in conversation. I can understand user queries and generate corresponding answers or suggestions based on natural language. I can also learn new knowledge and apply it to various scenarios. If you have any questions or need help, please feel free to let me know, and I will do my best to support you."},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":3,"completion_tokens":72,"total_tokens":75},"created":1720682745,"system_fingerprint":null,"model":"qwen1.5-72b-chat","id":"chatcmpl-3d117bd7-9bfb-9121-9fc2-xxxxxxxxxxxx"}

Essa saída indica que o gateway roteou a solicitação com sucesso.

Etapa 5: Usar recursos de segurança do gateway do ASM

Esta etapa demonstra como criar uma política de autorização simples para negar acesso ao serviço de LLM a partir do seu endereço IP local pelo gateway do ASM.

  1. Crie um arquivo chamado 'auth-policy.yaml' com o seguinte conteúdo:

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      labels:
        gateway: ingressgateway
      name: auth-policy
      namespace: istio-system
    spec:
      action: DENY
      rules:
        - from:
            - source:
                ipBlocks:
                  - ${YOUR_LOCAL_IP}
          to:
            - operation:
                hosts:
                  - test.com
      selector:
        matchLabels:
          istio: ingressgateway
  2. Execute o comando abaixo para implantar a política de autorização:

    kubectl apply -f auth-policy.yaml
  3. Execute novamente o comando de teste da Etapa 4. O resultado esperado é:

    RBAC: access denied
Nota

Os recursos de segurança disponíveis para solicitações HTTP padrão no gateway do ASM, como políticas abrangentes de autorização, autenticação JWT e serviços personalizados de autorização externa, também se aplicam a solicitações de LLM. Aplicar essas políticas no gateway de entrada protege suas aplicações de forma mais eficaz.