Gunakan Alibaba Cloud Function Compute untuk secara otomatis dan berkala menyimpan log offline dari Content Delivery Network (CDN) ke Object Storage Service (OSS). Hal ini memungkinkan pengarsipan dan analisis log jangka panjang.
Informasi latar belakang
Content Delivery Network (CDN) menyediakan log akses terperinci untuk nama domain yang dipercepat Anda. Log offline ini penting untuk analisis perilaku pengguna, pemecahan masalah layanan, serta analisis data operasional. Sesuai Kebijakan layanan CDN, file log offline disimpan di server CDN selama 30 hari dan secara otomatis dihapus setelah periode tersebut.
Anda mungkin perlu menyimpan log secara permanen untuk memenuhi persyaratan kepatuhan data, audit jangka panjang, atau analisis data historis. Object Storage Service (OSS) menawarkan solusi penyimpanan dengan ketersediaan tinggi, biaya rendah, dan tahan lama, sehingga ideal untuk pengarsipan log jangka panjang. Function Compute (FC) memantau event yang menghasilkan log CDN dan memanggil fungsi tugas untuk menyimpan log offline dari CDN di OSS. Solusi ini memungkinkan Anda membangun alur kerja otomatis guna menyimpan log CDN dengan lancar di Bucket OSS Anda.
Logika eksekusi
Inti dari solusi penyimpanan otomatis ini adalah menggunakan FC sebagai penjadwal dan pelaksana untuk menghubungkan CDN dan OSS. Alur kerjanya adalah sebagai berikut:
Pemicu Event: Pemicu dikonfigurasikan di Function Compute. Pemicu tersebut diaktifkan setiap kali CDN menghasilkan log.
Ekskusi Fungsi: Ketika pemicu event diaktifkan, secara otomatis mengeksekusi kode fungsi yang terkait.
Mengunduh Log: Kode fungsi menghitung nama file log untuk hari sebelumnya berdasarkan tanggal saat ini dan menghasilkan URL unduhan untuk log offline CDN. Fungsi kemudian mengirim permintaan ke URL ini untuk mengunduh file log ke lingkungan sementara FC.
Simpan di Object Storage Service (OSS): Setelah fungsi berhasil mengunduh file log, ia memanggil API OSS untuk mengunggah file tersebut ke direktori yang ditentukan di bucket OSS Anda.
Proses ini sepenuhnya otomatis dan mengintegrasikan tiga layanan Alibaba Cloud: CDN, FC, dan OSS, sehingga meningkatkan efisiensi manajemen layanan cloud.
Deskripsi Penagihan
Solusi ini melibatkan penagihan untuk produk-produk berikut:
Content Delivery Network (CDN): Fitur untuk menghasilkan dan menyediakan unduhan untuk log offline adalah gratis.
Function Compute: FC ditagih berdasarkan jumlah eksekusi fungsi, sumber daya yang dikonsumsi (vCPU dan memori), serta durasi eksekusi. Untuk tugas penyimpanan log ringan yang hanya berjalan beberapa kali sehari, biayanya biasanya sangat rendah. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan Function Compute.
Object Storage Service (OSS): OSS ditagih berdasarkan ruang penyimpanan yang Anda gunakan, jumlah permintaan API, dan lalu lintas keluar melalui internet. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan Object Storage Service (OSS).
Prasyarat
Pastikan bahwa CDN, FC, dan OSS Anda diaktifkan di bawah Akun Alibaba Cloud yang sama untuk memastikan otorisasi layanan dan akses tanpa hambatan.
Ikuti petunjuk dalam Buat Bucket untuk membuat bucket di OSS guna menyimpan file log. Catat nama bucket, nilai Endpoint untuk akses internet, dan nama direktori tempat file log akan disimpan.
Langkah-langkah konfigurasi
1. Dapatkan konfigurasi bucket
Saat Anda membuat fungsi tugas di FC, Anda harus menyediakan informasi OSS untuk penyimpanan log. Oleh karena itu, Anda harus terlebih dahulu mendapatkan nama bucket, nilai Endpoint untuk akses internet, dan nama direktori untuk menyimpan file log. Ikuti langkah-langkah berikut untuk mengambil informasi ini:
2. Buat tugas Function Compute
Inti dari solusi penyimpanan otomatis ini adalah menggunakan FC sebagai penjadwal dan pelaksana. Oleh karena itu, Anda harus mengonfigurasi pemicu dan fungsi tugas yang sesuai di FC.
Pergi ke Konsol Function Compute 3.0. Di panel navigasi di sebelah kiri, pilih Functions.
Di tab Functions, klik Create Function, pilih Event Function, lalu klik Create Event Function.
Saat membuat fungsi peristiwa, konfigurasikan hanya parameter kunci yang memengaruhi eksekusi fungsi dengan benar.
Basic Configurations - Function Name: Anda akan menggunakan nama fungsi ini di langkah-langkah selanjutnya. Kami sarankan Anda menggunakan
cdn-log-dump.Function Code - Runtime Environment: Karena fungsi tugas adalah kode Python, pilih Built-in Runtime, Python, dan Python 3.10.
More Configurations - Environment Variables: Fungsi tugas perlu mendapatkan informasi bucket. Oleh karena itu, Anda harus melewati informasi konfigurasi bucket dalam variabel lingkungan. Buat tiga variabel lingkungan dan masukkan parameter yang sesuai:
target_oss_bucket: Nama Buckettarget_oss_endpoint: Nilai Endpoint untuk akses internettarget_oss_prefix: Nama Direktori untuk Menyimpan File Log

Setelah mengonfigurasi parameter, klik Create untuk membuat fungsi.
Di halaman Function Details, klik tab Triggers, lalu klik Create Trigger.

Ikuti petunjuk ini untuk mengonfigurasi parameter kunci untuk pemicu. Klik OK.
Trigger Type: Pilih CDN Synchronous Call.
Name: Masukkan nama pemicu. Kami sarankan Anda menggunakan
cdn-logs-triggers.Triggering Event: Pilih LogFileCreated.
Domain Name: Anda harus memasukkan nama domain yang dipercepat CDN yang berada di bawah Akun Alibaba Cloud yang sama dan berjalan dengan baik.
Description: Masukkan deskripsi untuk pemicu. Kami sarankan Anda menggunakan: Pemicu pembuatan file log offline CDN.
Role Name: Pilih AliyunCDNEventNotificationRole.
Setelah Anda mengonfigurasi parameter pemicu, klik OK. Jika pesan The Default Role For The CDN Trigger Has Not Been Created muncul, klik Authorize Now dan ikuti petunjuk untuk membuat peran default. Jika pesan ini tidak muncul, pemicu dibuat langsung.

Di halaman Function Details, klik tab Code. Di kompiler online, masukkan kode berikut untuk menarik log offline dari CDN dan menyimpannya di OSS.
Klik Deploy Code untuk menyelesaikan konfigurasi fungsi.
3. Buat peran khusus dan kebijakan akses
FC memerlukan izin untuk mengakses OSS. Untuk menyederhanakan proses otorisasi, FC mendukung asosiasi peran. Ikuti langkah-langkah berikut untuk mengonfigurasi peran yang memungkinkan fungsi penyimpanan log offline mengakses OSS.
Buka konsol Resource Access Management (RAM). Di panel navigasi di sebelah kiri, pilih Permission Management > Policies.
Klik Create Policy. Di halaman Buat Kebijakan, klik tab Script.
Dalam kebijakan berikut, ganti
BucketNamedengan nama bucket Anda, dan ganti ketiga instanceFC-NAMEdengan nama fungsi dari Langkah 2. Kami sarankan Anda menggunakancdn-log-dump.{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "oss:PutObject", "Resource": "acs:oss:*:*:BucketName/*" }, { "Effect": "Allow", "Action": "fc:InvokeFunction", "Resource": [ "acs:fc:*:*:services/FC-NAME/functions/FC-NAME", "acs:fc:*:*:services/FC-NAME.*/functions/*" ] } ] }Klik OK. Masukkan Policy Name dan Description, lalu klik OK lagi untuk menyelesaikan proses Create Access Policy. (Kami sarankan menggunakan
AliyunCDNLogDumpAccesssebagai Nama Kebijakan dan Mengelola izin untuk penyimpanan log CDN sebagai Deskripsi).Di panel navigasi di sebelah kiri, pilih Identity Management > Roles. Di halaman Peran, klik Create Role.
Untuk Trusted Entity Type, pilih Alibaba Cloud Account. Untuk Trusted Alibaba Cloud Account, pilih Current Alibaba Cloud Account Xxxxxxx. Lalu, klik OK.
Di panel Create Role, masukkan Role Name. Kami sarankan Anda menggunakan
AliyunCDNLogDumpRole. Lalu, klik OK untuk membuat peran.Di halaman detail peran, klik tab Permissions, lalu klik Grant Permission. Atur Grant Scope ke Custom Policy. Untuk Policy Name, masukkan nama kebijakan yang Anda buat di Langkah 4. Kami sarankan Anda menggunakan
AliyunCDNLogDumpAccess. Lalu, klik OK.Klik tab Trust Policy, lalu klik Edit Trust Policy. Di editor Script, masukkan kebijakan kepercayaan berikut, lalu klik OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "fc.aliyuncs.com" ] } } ], "Version": "1" }
Pada titik ini, Anda telah menyelesaikan konfigurasi peran dan izin. Selanjutnya, Anda perlu mengikat peran ini ke tugas FC.
4. Ikat peran ke tugas Function Compute
Di konsol FC, pada tab Fungsi, pilih fungsi yang Anda buat di Langkah 2, lalu klik Configuration.
Di tab Configuration, pilih Advanced Configuration, lalu klik tombol Configure yang sesuai.

Dalam konfigurasi lanjutan, temukan opsi Izin - Peran Fungsi. Pilih peran yang Anda buat di Langkah 3. Kami sarankan Anda menggunakan
AliyunCDNLogDumpRole. Lalu, klik Deploy untuk mengikat peran ke tugas FC.
5. Uji tugas Function Compute (opsional)
Setelah Anda menyelesaikan empat langkah pertama, seluruh proses untuk menyimpan log offline CDN di OSS telah dikonfigurasi. Namun, karena ada penundaan sekitar 24 jam dalam pembuatan log offline, Anda tidak dapat segera memverifikasi bahwa tugas FC yang dikonfigurasi berjalan dengan benar. Anda dapat menguji tugas FC yang dikonfigurasi dengan mengikuti langkah-langkah berikut.
Di konsol FC, pada tab Fungsi, pilih fungsi yang Anda buat di Langkah 2, lalu klik Configuration.
Di tab Test, untuk Test Request Operation, pilih Create New Test Event. Untuk Event Template, pilih CDN(LogFileCreated). Untuk Event Name, masukkan Test_cdn_log_dump.

Gunakan parameter yang diperoleh dalam langkah-langkah berikut untuk mengganti parameter
filePathdi template acara.Klik Test Function. Setelah eksekusi selesai, Anda dapat melihat bahwa nilai kembali adalah
nulldan statusnya berhasil.
Di konsol Bucket OSS, pilih bucket yang digunakan untuk menyimpan log CDN.
Pilih File List dan pergi ke direktori yang dikonfigurasi untuk menyimpan log CDN. Anda dapat melihat folder bernama setelah nama domain yang dipercepat. Di dalam folder ini, ada subfolder bernama setelah tanggal, yang berisi file yang ditentukan dalam pengujian. Ini menunjukkan bahwa tugas FC telah berhasil memproses penyimpanan log offline CDN.


