Todos os produtos
Search
Central de documentação

ApsaraVideo VOD:Implante um proxy de requisição

Última atualização: Jun 27, 2026

Em ambientes de rede complexos, operadoras podem sequestrar o nome de domínio padrão do ApsaraVideo VOD (*.aliyuncs.com), o que causa falhas de acesso. Para melhorar as taxas de sucesso e a estabilidade das requisições, implante um serviço de proxy dedicado.

Antes de começar

O exemplo a seguir utiliza o Alibaba Cloud Function Compute (FC) 3.0. Antes de iniciar, consulte Faturamento do Function Compute.

Procedimento

Siga estas etapas:

Nota

Caso o console do Function Compute (FC) exiba a interface 2.0, clique em Acesse o Function Compute 3.0 no canto superior direito para alternar para o novo console.

Etapa 1: Crie uma função

  1. Acesse a página Functions no console do Function Compute (FC) e clique em Crie uma função.

  2. Selecione Task Function e clique em Crie uma função de tarefa. Configure os seguintes parâmetros:

    • Para o ambiente de execução, selecione Built-in Runtimes > Python.

    • Mantenha as configurações padrão dos demais parâmetros ou ajuste-as conforme necessário. Quanto ao tipo de função, escolha Task Function. Na configuração elástica, defina o tipo de instância como elastic instance com 0,35 vCPU, 512 MB de memória e disco de 512 MB. Defina o número mínimo de instâncias como 0 (recomendado) e a concorrência por instância única como 1. Para o método de upload de código, selecione Use sample code. Em seguida, clique em Criar.

  3. Revise sua configuração e clique em Criar.

Etapa 2: Implante o código

  1. Na página Function Details, clique na aba Code.

  2. Clique em Open WebIDE para abrir o editor de código.

  3. Copie o código abaixo para o editor.

    Código de exemplo

    import json
    import logging
    import http.client
    from urllib.parse import urlencode
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger()
    def get_target_domain(region_id):
        # If region_id is not specified, use the default value.
        if not region_id:
            return "vod.cn-shanghai.aliyuncs.com"
        return f"vod.{region_id}.aliyuncs.com"
    def handler(event, context):
        try:
            # If the event is in bytes, decode it first.
            if isinstance(event, bytes):
                event = json.loads(event.decode('utf-8'))
            # Get queryParameters.
            query_params = event['queryParameters']
            logger.info(f"queryParameters: {query_params}")
            # Get and remove the RegionId parameter.
            region_id = query_params.pop('RegionId', None)
            target_domain = get_target_domain(region_id)
            # Build the query string.
            query_string = urlencode(query_params)
            path = f"/?{query_string}"
            logger.info(f"Forwarding to: {target_domain}{path}")
            # Forward the request.
            conn = http.client.HTTPSConnection(target_domain)
            conn.request('GET', path)
            # Get the response.
            response = conn.getresponse()
            body = response.read()
            # Process the response header to ensure there is only one Access-Control-Allow-Origin header.
            headers = dict(response.getheaders())
            # Set a single CORS header.
            headers['Access-Control-Allow-Origin'] = '*'
            return {
                'statusCode': response.status,
                'headers': headers,
                'body': body.decode('utf-8')
            }
        except Exception as e:
            logger.error(f"Error: {str(e)}")
            return {
                'statusCode': 500,
                'body': str(e)
            }
        finally:
            if 'conn' in locals():
                conn.close()
  4. Retorne à página Function Details e clique em Deploy Code.

Etapa 3: Crie um gatilho

  1. Na página Function Details, clique na aba Triggers.

  2. Clique em Criar gatilho e selecione Gatilho HTTP. Recomendamos definir o Authentication Method como No Authentication e manter as configurações padrão dos outros parâmetros ou alterá-las conforme necessário. Insira um nome para o gatilho, defina a versão ou alias como LATEST e selecione os métodos de requisição GET, POST, PUT e DELETE.

  3. Revise sua configuração e clique em OK.

Etapa 4: Verifique a implantação

  1. Na página de gerenciamento de gatilhos do console do Function Compute, localize o gatilho HTTP criado e copie seu public access address. Acesse esse endereço no navegador para testar a conectividade. Também é possível definir a propriedade customVodServer do seu player com esse endereço para acessar o serviço de proxy.

  2. Uma conexão bem-sucedida confirma que o proxy de requisição foi implantado corretamente.

Documentos relacionados