全部产品
Search
文档中心

ApsaraVideo VOD:Terapkan proxy permintaan

更新时间:Nov 18, 2025

Dalam lingkungan jaringan yang kompleks, nama domain default ApsaraVideo VOD (*.aliyuncs.com) mungkin dibajak oleh penyedia layanan, sehingga menyebabkan kegagalan akses. Untuk meningkatkan tingkat keberhasilan dan stabilitas permintaan, Anda dapat menerapkan layanan proxy khusus.

Sebelum memulai

Topik ini menggunakan Alibaba Cloud Function Compute (FC) 3.0 sebagai contoh. Sebelum memulai, pelajari tentang penagihan Function Compute.

Langkah-langkah

Langkah-langkah penerapan adalah sebagai berikut:

Catatan

Jika Konsol FC Anda tampak seperti pada gambar berikut, klik Experience Function Compute 3.0 di pojok kanan atas untuk beralih ke konsol baru.

image

Langkah 1: Buat fungsi

  1. Buka halaman Functions di Konsol FC, lalu klik Create Function.image

  2. Pilih Task Function, lalu klik Create Task Function.

    • Untuk Runtime Environment, pilih Built-in Runtimes > Python.

    • Pertahankan nilai default untuk parameter lain atau sesuaikan sesuai kebutuhan.image

  3. Verifikasi konfigurasi, lalu klik Create.

Langkah 2: Terapkan kode

  1. Pada halaman Function Details, klik tab Code.image

  2. Klik tombol Open WebIDE untuk membuka editor kode.image

  3. Salin kode berikut ke dalam editor.

    Kode Contoh

    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):
        # Jika region_id tidak ditentukan, gunakan nilai default.
        if not region_id:
            return "vod.cn-shanghai.aliyuncs.com"
        return f"vod.{region_id}.aliyuncs.com"
    
    def handler(event, context):
        try:
            # Jika event berupa bytes, dekode terlebih dahulu.
            if isinstance(event, bytes):
                event = json.loads(event.decode('utf-8'))
    
            # Dapatkan queryParameters.
            query_params = event['queryParameters']
            logger.info(f"queryParameters: {query_params}")
    
            # Dapatkan dan hapus parameter RegionId.
            region_id = query_params.pop('RegionId', None)
            target_domain = get_target_domain(region_id)
    
            # Bangun string kueri.
            query_string = urlencode(query_params)
            path = f"/?{query_string}"
    
            logger.info(f"Meneruskan ke: {target_domain}{path}")
    
            # Teruskan permintaan.
            conn = http.client.HTTPSConnection(target_domain)
            conn.request('GET', path)
    
            # Dapatkan tanggapan.
            response = conn.getresponse()
            body = response.read()
    
            # Proses header respons untuk memastikan hanya ada satu Access-Control-Allow-Origin.
            headers = dict(response.getheaders())
            # Tetapkan satu header CORS.
            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. Kembali ke halaman Function Details, lalu klik Deploy Code.

Langkah 3: Buat pemicu

  1. Pada halaman Function Details, klik tab Triggers.image

  2. Klik Create Trigger, lalu pilih HTTP Trigger. Atur Authentication Method menjadi No Authentication. Pertahankan nilai default untuk parameter lain atau sesuaikan sesuai kebutuhan.image

  3. Verifikasi konfigurasi, lalu klik OK.

Langkah 4: Verifikasi penerapan

  1. Pada pemutar Anda, atur properti customVodServer ke nama domain yang dihasilkan (alamat akses publik), lalu uji koneksi dengan mengakses layanan proxy.image

  2. Koneksi yang berhasil menunjukkan bahwa proxy permintaan telah berhasil diterapkan.

Referensi