Tous les produits
Search
Centre de documentation

ApsaraVideo VOD:Déployer un proxy de requêtes

Dernière mise à jour :Sep 17, 2026

Dans des environnements réseau complexes, les opérateurs peuvent détourner le nom de domaine par défaut d'ApsaraVideo VOD (*.aliyuncs.com), ce qui entraîne des échecs d'accès. Déployez un service de proxy dédié pour améliorer le taux de réussite des requêtes et la stabilité.

Avant de commencer

L'exemple suivant utilise Alibaba Cloud Function Compute (FC) 3,0. Avant de commencer, consultez la rubrique Facturation de Function Compute.

Procédure

Suivez les étapes ci-dessous :

Remarque

Si votre console Function Compute (FC) affiche l'interface 2,0, cliquez sur Go to Function Compute 3.0 dans le coin supérieur droit pour basculer vers la nouvelle console.

Étape 1 : Créer une fonction

  1. Accédez à la page Functions de la console Function Compute (FC) et cliquez sur Create Function.

  2. Sélectionnez Task Function et cliquez sur Create Task Function. Configurez les paramètres suivants :

    • Pour l'environnement d'exécution, sélectionnez Built-in Runtimes > Python.

    • Conservez les paramètres par défaut ou configurez-les selon vos besoins. Pour le type de fonction, sélectionnez Task Function. Dans la configuration élastique, définissez le type d'instance sur elastic instance avec 0,35 vCPU, 512 Mo de mémoire et un disque de 512 Mo. Définissez le nombre minimal d'instances sur 0 (recommandé) et la concurrence par instance sur 1. Pour la méthode de téléchargement du code, sélectionnez Use sample code. Cliquez ensuite sur Create.

  3. Vérifiez votre configuration et cliquez sur Create.

Étape 2 : Déployer le code

  1. Sur la page Function Details, cliquez sur l'onglet Code.

  2. Cliquez sur Open WebIDE pour ouvrir l'éditeur de code.

  3. Copiez le code suivant dans l'éditeur.

    Exemple de code

    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. Revenez à la page Function Details et cliquez sur Deploy Code.

Étape 3 : Créer un déclencheur

  1. Sur la page Function Details, cliquez sur l'onglet Triggers.

  2. Cliquez sur Create Trigger et sélectionnez HTTP Trigger. Nous vous recommandons de définir la méthode Authentication Method sur No Authentication et de conserver les paramètres par défaut ou de les modifier selon vos besoins. Saisissez un nom de déclencheur, définissez la version ou l'alias sur LATEST et sélectionnez les méthodes de requête GET, POST, PUT et DELETE.

  3. Vérifiez votre configuration et cliquez sur OK.

Étape 4 : Vérifier le déploiement

  1. Sur la page de gestion des déclencheurs dans la console Function Compute, localisez le déclencheur HTTP que vous avez créé et copiez son public access address. Accédez à cette adresse dans votre navigateur pour tester la connectivité. Vous pouvez également définir la propriété customVodServer de votre lecteur sur cette adresse pour accéder au service de proxy.

  2. Une connexion réussie confirme que le proxy de requêtes est déployé.

Documentation connexe