全部产品
Search
文档中心

Function Compute:Konfigurasi pemicu CDN

更新时间:Nov 11, 2025

Setelah Anda mengonfigurasi pemicu CDN, Function Compute akan dipicu untuk menyimpan file log CDN offline setiap kali layanan CDN menghasilkannya untuk nama domain yang dipercepat tertentu. Topik ini menjelaskan cara mengonfigurasi pemicu CDN untuk fungsi objektif di konsol Function Compute. Prosesnya mencakup pembuatan pemicu, konfigurasi parameter input, serta penulisan dan pengujian kode fungsi.

Contoh skenario

Alibaba Cloud CDN mendukung berbagai jenis server origin, seperti nama domain Object Storage Service (OSS), alamat IP, nama domain origin, dan nama domain Function Compute. Setiap jenis server origin mendukung beberapa alamat server origin. Dalam skenario multi-origin, Anda dapat mengatur prioritas utama/sekunder dan bobot untuk server origin guna menerapkan load balancing.

Topik ini menggunakan OSS sebagai server origin. Buat bucket di konsol OSS, peroleh nama domain yang akan digunakan sebagai server origin, lalu tambahkan nama domain yang dipercepat untuk server origin tersebut. Untuk informasi selengkapnya tentang cara mengubah jenis server origin, lihat Konfigurasi server origin.

Prasyarat

Langkah 1: Buat pemicu CDN

  1. Masuk ke konsol Function Compute. Di panel navigasi sebelah kiri, pilih Function Management > Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.

  3. Di halaman detail fungsi, klik tab Triggers, lalu klik Create Trigger.

  4. Di panel Buat Pemicu, konfigurasi parameter, lalu klik OK.

    Parameter

    Tindakan

    Contoh

    Jenis Pemicu

    Pilih CDN.

    CDN

    Nama

    Masukkan nama kustom untuk pemicu.

    cdn-trigger

    Versi atau Alias

    Nilai default adalah LATEST. Jika ingin membuat pemicu untuk versi atau alias yang berbeda, pilih terlebih dahulu versi atau alias dari daftar drop-down Version Or Alias di halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Kelola versi dan Kelola alias.

    LATEST

    Peristiwa Pemicu

    Pilih jenis peristiwa pemicu.

    Untuk informasi selengkapnya tentang cara memilih jenis peristiwa pemicu, lihat Definisi event CDN.

    CdnDomainStarted

    Versi Peristiwa Pemicu

    Nomor versi peristiwa pemicu.

    Catatan

    Hanya versi event 1.0.0 yang didukung.

    1.0.0

    Nama Domain

    Masukkan nama domain yang dipercepat.

    bucket*******.oss-cn-chengdu-internal.aliyuncs.com

    Deskripsi

    Masukkan deskripsi untuk nama domain.

    cdntrigger

    Nama Peran

    Pilih AliyunCDNEventNotificationRole.

    Catatan

    Jika ini pertama kalinya Anda membuat jenis pemicu ini, klik OK, lalu klik Authorize Now di kotak dialog yang muncul.

    AliyunCDNEventNotificationRole

    Setelah pemicu dibuat, pemicu tersebut akan muncul dalam daftar Trigger Name. Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.

Langkah 2: Konfigurasi parameter input fungsi

  1. Di tab Code pada halaman detail fungsi, klik ikon image.png di samping Test Function dan pilih Configure Test Parameters dari daftar drop-down.

  2. Di panel Configure Test Parameters, pilih Create New Test Event atau Edit Existing Test Event, masukkan nama dan konten event, lalu klik OK.

    Event merupakan parameter input untuk Function Compute. Formatnya ditunjukkan pada contoh berikut. Pasangan kunci-nilai dalam eventParameter bervariasi tergantung pada jenis event CDN.

    • Contoh event LogFileCreated.

      Ganti filePath dengan path file log CDN Anda atau file uji apa pun.

      {
          "events": [
              {
                  "eventName": "LogFileCreated",
                  "eventSource": "cdn",
                  "region": "cn-hangzhou",
                  "eventVersion": "1.0.0",
                  "eventTime": "2018-06-14T15:31:49+08:00",
                  "traceId": "c6459282-6a4d-4413-894c-e4ea3968****",
                  "userIdentity": {
                      "aliUid": "164901546557****"
                  },
                  "resource": {
                      "domain": "example.com"
                  },
                  "eventParameter": {
                      "domain": "example.com",
                      "endTime": 1528959900,
                      "fileSize": 1788115,
                      "filePath": "http://cdnlog.cn-hangzhou.oss.aliyun-inc.com/www.aliyun.com/2017_12_27/www.aliyun.com_2017_12_27_0800_0900.gz?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx",
                      "startTime": 1528959600
                  }
              }
          ]
      }
                          

      Tabel berikut menjelaskan bidang-bidang dalam parameter event.

      Parameter

      Tipe

      Contoh

      Deskripsi

      eventName

      String

      LogFileCreated

      Jenis event.

      eventSource

      String

      cdn

      Nama sumber event.

      region

      String

      cn-hangzhou

      Wilayah tempat CDN berada.

      eventVersion

      String

      1.0.0

      Versi pemicu event.

      eventTime

      String

      2018-06-14T15:31:49+08:00

      Waktu saat event terjadi.

      traceId

      String

      c6459282-6a4d-4413-894c-e4ea3968****

      ID yang diteruskan dari sumber event untuk pemecahan masalah.

      userIdentity

      Map

      Properti pengguna.

      aliUid

      String

      164901546557****

      ID akun Alibaba Cloud.

      resource

      Map

      Informasi sumber daya.

      domain

      String

      example.com

      Nama domain.

      eventParameter

      Map

      Parameter event.

      domain

      String

      example.com

      Nama domain.

      endTime

      String

      1528959900

      Waktu akhir file log.

      fileSize

      String

      1788115

      Ukuran file log.

      filePath

      String

      http://cdnlog.cn-hangzhou.oss.aliyun-inc.com/www.aliyun.com/2017_12_27/www.aliyun.com_2017_12_27_0800_0900.gz?OSSAccessKeyId=xxxx&Expires=xxxx&Signature=xxxx

      Path file log.

      startTime

      String

      1528959600

      Waktu mulai file log.

    • Contoh event untuk CachedObjectsRefreshed dan CachedObjectsPushed.

      {
          "events": [
              {
                  "eventName": "CachedObjectsRefreshed",
                  "eventVersion": "1.0.0", 
                  "eventSource": "cdn", 
                  "region": "cn-hangzhou",
                  "eventTime": "2018-03-16T14:19:55+08:00",
                  "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****",
                  "resource": {
                      "domain": "example.com"
                  },
                  "eventParameter": {
                      "objectPath": [
                          "/2018/03/16/13/33b430c57e7.mp4",
                          "/2018/03/16/14/4ff6b9bd54d.mp4"
                      ],
                      "createTime": 1521180769,
                      "domain": "example.com",
                      "completeTime": 1521180777,
                      "objectType": "File",
                      "taskId": 2089687230
                  },
                  "userIdentity": {
                      "aliUid": "164901546557****"
                  }
              }
          ]
      }                    

      Tabel berikut menjelaskan bidang-bidang dalam parameter event.

      Parameter

      Tipe

      Contoh

      Deskripsi

      eventName

      String

      CachedObjectsRefreshed

      Jenis event.

      eventSource

      String

      cdn

      Nama sumber event.

      region

      String

      cn-hangzhou

      Wilayah tempat CDN berada.

      eventVersion

      String

      1.0.0

      Versi pemicu event.

      eventTime

      String

      2018-06-14T15:31:49+08:00

      Waktu saat event terjadi.

      traceId

      String

      c6459282-6a4d-4413-894c-e4ea3968****

      ID yang diteruskan dari sumber event untuk pemecahan masalah.

      resource

      Map

      Informasi sumber daya.

      domain

      String

      example.com

      Nama domain.

      eventParameter

      Map

      Parameter event.

      objectPath

      String

      /2018/03/16/13/33b430c57e7.mp4

      Identifier sumber daya.

      createTime

      String

      1521180769

      Waktu mulai refresh

      domain

      String

      example.com

      Nama domain.

      completeTime

      String

      1521180777

      Waktu Akhir Refresh

      objectType

      String

      File

      Jenis purge. Nilai yang valid:

      • File: File.

      • Directory: Direktori.

      taskId

      String

      2089687230

      ID tugas purge sumber daya.

      userIdentity

      Map

      Properti pengguna.

      aliUid

      String

      164901546557****

      ID akun Alibaba Cloud.

    • Contoh event untuk CdnDomainStarted dan CdnDomainStopped.

      {  "events": [
            { 
               "eventName": "CdnDomainStarted",
               "eventVersion": "1.0.0",
               "eventSource": "cdn",
               "region": "cn-hangzhou",
               "eventTime": "2018-03-16T14:19:55+08:00",
               "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****",
               "resource": {
                    "domain": "example.com" 
               }, 
               "eventParameter": {
                    "domain": "example.com", 
                    "status": "online"
               }, 
               "userIdentity": {
                    "aliUid": "164901546557****"
               } 
            } 
         ]
      }

      Tabel berikut menjelaskan bidang-bidang dalam parameter event.

      Parameter

      Tipe

      Contoh

      Deskripsi

      eventName

      String

      CdnDomainStarted

      Jenis event.

      eventSource

      String

      cdn

      Nama sumber event.

      region

      String

      cn-hangzhou

      Wilayah tempat CDN berada.

      eventVersion

      String

      1.0.0

      Versi pemicu event.

      eventTime

      String

      2018-06-14T15:31:49+08:00

      Waktu saat event terjadi.

      traceId

      String

      c6459282-6a4d-4413-894c-e4ea3968****

      ID yang diteruskan dari sumber event untuk pemecahan masalah.

      resource

      Map

      Informasi sumber daya.

      domain

      String

      example.com

      Nama domain.

      eventParameter

      Map

      Parameter event.

      domain

      String

      example.com

      Nama domain.

      status

      String

      online

      Status nama domain.

      userIdentity

      Map

      Properti pengguna.

      aliUid

      String

      164901546557****

      ID akun Alibaba Cloud.

    • Contoh event untuk CdnDomainAdded dan CdnDomainDeleted.

      {  "events": [
            {
               "eventName": "CdnDomainAdded",
               "eventVersion": "1.0.0",
               "eventSource": "cdn",
               "region": "cn-hangzhou",
               "eventTime": "2018-03-16T14:19:55+08:00",
               "traceId": "cf89e5a8-7d59-4bb5-a33e-4c3d08e2****",
               "resource": {
                    "domain": "example.com"
               },
               "eventParameter": {
                    "domain": "example.com"
               },
               "userIdentity": {
                    "aliUid": "164901546557****"
               }
            }
         ]
      }

      Tabel berikut menjelaskan bidang-bidang dalam parameter event.

      Parameter

      Tipe

      Contoh

      Deskripsi

      eventName

      String

      CdnDomainAdded

      Jenis event.

      eventSource

      String

      cdn

      Nama sumber event.

      region

      String

      cn-hangzhou

      Wilayah tempat CDN berada.

      eventVersion

      String

      1.0.0

      Versi pemicu event.

      eventTime

      String

      2018-06-14T15:31:49+08:00

      Waktu saat event terjadi.

      traceId

      String

      c6459282-6a4d-4413-894c-e4ea3968****

      ID yang diteruskan dari sumber event untuk pemecahan masalah.

      resource

      Map

      Informasi sumber daya.

      domain

      String

      example.com

      Nama domain.

      eventParameter

      Map

      Parameter event.

      domain

      String

      example.com

      Nama domain.

      userIdentity

      Map

      Properti pengguna.

      aliUid

      String

      164901546557****

      ID akun Alibaba Cloud.

Langkah 3: Tulis dan uji kode fungsi

Setelah membuat pemicu CDN, Anda harus menulis dan menguji kode fungsi untuk memastikan fungsinya bekerja sesuai harapan. Di lingkungan produksi, pemicu secara otomatis mengeksekusi fungsi ketika event CDN terjadi.

  1. Di tab Code pada halaman detail fungsi, tulis kode di editor kode dan klik Deploy Code.

    Topik ini menggunakan kode Python sebagai contoh.

    # -*- coding: utf-8 -*-
    import logging
    import json
    
    logger = logging.getLogger("cdn-sample")
    
    def handler(event, context):
        evt = json.loads(event)
        eventObj = evt["events"][0]
        eventName = eventObj['eventName']
        info = ""
        eventParam = eventObj['eventParameter']
        domain = eventParam['domain']
        if eventName == "CachedObjectsRefreshed" or eventName == "CachedObjectsPushed":
            objPathList = eventParam['objectPath']
            info = ",".join(objPathList)
        elif eventName == "LogFileCreated":
            info = eventParam['filePath']
        elif eventName == "CdnDomainStarted" or eventName == "CdnDomainStopped":
            # Logika bisnis Anda di sini
            pass
        elif eventName == "CdnDomainAdded" or eventName == "CdnDomainDeleted":
            # Logika bisnis Anda di sini
            pass
        return f"eventName:{eventName}, domain: {domain}, info: {info}"   
  2. Klik Test Function.

    Setelah eksekusi selesai, Anda dapat melihat hasilnya di atas tab Code.

Informasi lebih lanjut

Selain melalui konsol Function Compute, Anda juga dapat mengonfigurasi pemicu dengan cara berikut:

  • Gunakan alat Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat Perintah umum Serverless Devs.

  • Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat SDK.

Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.