Gunakan Function Compute untuk mengarsipkan offline logs dari Alibaba Cloud CDN ke Object Storage Service (OSS) secara otomatis dan berkala guna retensi jangka panjang serta analisis.
Latar Belakang
Alibaba Cloud CDN menyediakan access logs terperinci untuk nama domain yang dipercepat Anda. Offline logs ini penting untuk analisis perilaku pengguna, troubleshooting layanan, dan statistik data operasional. Alibaba Cloud CDN hanya menyimpan file offline log di servernya selama 30 hari sebelum menghapusnya secara otomatis.
Untuk memenuhi kebutuhan kepatuhan data, audit jangka panjang, atau analisis data historis, Anda mungkin perlu menyimpan log ini secara permanen. Object Storage Service (OSS) menyediakan solusi penyimpanan yang sangat tersedia, hemat biaya, dan tahan lama, sehingga menjadi pilihan ideal untuk arsip log jangka panjang. Function Compute mendengarkan event yang dihasilkan saat Alibaba Cloud CDN membuat log, lalu memanggil fungsi untuk mengarsipkan offline logs tersebut ke Object Storage Service (OSS). Solusi ini menciptakan alur kerja otomatis yang mengarsipkan log Alibaba Cloud CDN ke bucket OSS Anda secara mulus.
Cara Kerja
Solusi arsip otomatis ini menggunakan Function Compute sebagai "penjadwal" dan "pemindah data" untuk menghubungkan Alibaba Cloud CDN dan Object Storage Service (OSS). Alur kerjanya adalah sebagai berikut:
-
Pemicu event: Pemicu Function Compute aktif setiap kali Alibaba Cloud CDN menghasilkan file log baru.
-
Eksekusi fungsi: Saat pemicu aktif, kode fungsi terkait dieksekusi secara otomatis.
-
Pengambilan log: Kode fungsi menghitung nama file log hari sebelumnya berdasarkan tanggal saat ini dan menghasilkan URL unduh untuk offline log Alibaba Cloud CDN. Kemudian, fungsi tersebut mengirim permintaan ke URL tersebut untuk mengunduh file log ke lingkungan sementara Function Compute.
-
Transfer ke Object Storage Service (OSS): Setelah file log berhasil diunduh, fungsi tersebut memanggil API OSS untuk mengunggah file ke direktori tertentu dalam bucket OSS yang telah Anda tentukan.
Seluruh proses ini sepenuhnya otomatis, mengintegrasikan Alibaba Cloud CDN, Function Compute, dan Object Storage Service (OSS) secara erat untuk menyederhanakan manajemen layanan cloud Anda.
Penagihan
Solusi ini melibatkan biaya untuk produk-produk berikut:
-
Alibaba Cloud CDN: Menghasilkan dan mengunduh offline logs gratis.
-
Function Compute: Anda dikenai biaya berdasarkan jumlah pemanggilan fungsi, sumber daya yang dikonsumsi (vCPU dan memori), serta durasi eksekusi. Untuk tugas arsip log ringan yang hanya berjalan beberapa kali sehari, biayanya biasanya minimal. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan Function Compute.
-
Object Storage Service (OSS): Anda dikenai biaya berdasarkan ruang penyimpanan yang digunakan, jumlah permintaan API, dan trafik internet outbound. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan Object Storage Service (OSS).
Prasyarat
-
Pastikan Anda telah mengaktifkan Alibaba Cloud CDN, Function Compute, dan Object Storage Service (OSS) di bawah Akun Alibaba Cloud yang sama. Hal ini menjamin otorisasi dan akses antar layanan berjalan lancar.
-
Buat bucket Object Storage Service (OSS) untuk menyimpan file log. Untuk informasi lebih lanjut, lihat Buat bucket. Catat nama bucket, endpoint akses publik, dan nama direktori penyimpanan log.
Prosedur
1. Dapatkan detail bucket
Fungsi Function Compute memerlukan detail bucket OSS Anda. Ikuti langkah-langkah berikut untuk mendapatkan nama bucket, endpoint akses publik, dan nama direktori penyimpanan log.
2. Buat fungsi dan pemicu Function Compute
Di Function Compute, Anda akan membuat fungsi untuk melakukan arsip dan pemicu untuk menjalankannya.
-
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Functions.
-
Di halaman Functions, klik Create Function, pilih Event Function, lalu klik Create Event Function.
-
Saat membuat fungsi event, konfigurasikan parameter utama berikut:
-
Basic Configuration-Function Name: Nama fungsi ini diperlukan untuk operasi selanjutnya. Kami merekomendasikan Anda menggunakan
cdn-log-dump. -
Function Code > Runtime: Fungsi ini ditulis dalam Python. Pilih Official Runtimes, Python, lalu Python 3.10.
-
Advanced Settings > Environment Variable: Untuk meneruskan detail bucket OSS ke fungsi, buat variabel lingkungan berikut:
-
target_oss_bucket: Nama bucket -
target_oss_endpoint: Endpoint untuk akses publik -
target_oss_prefix: Nama direktori untuk menyimpan file log
Sebagai contoh, atur target_oss_bucket ke
demo-bucket, target_oss_endpoint keoss-cn-hangzhou.aliyuncs.com, dan target_oss_prefix kecdn_log. -
-
-
Setelah mengonfigurasi parameter, klik Create.
-
Di Function Details, klik tab Triggers, lalu klik Create Trigger.
-
Konfigurasikan parameter utama pemicu sebagai berikut, lalu klik OK.
-
Trigger Type: Pilih Alibaba Cloud CDN (Sync invocation).
-
Name: Masukkan nama untuk pemicu (Direkomendasikan:
cdn-logs-triggers). -
Trigger Event: Pilih LogFileCreated.
-
Domain Name: Masukkan nama domain yang dipercepat aktif yang berada di bawah Akun Alibaba Cloud yang sama.
-
Description: Masukkan deskripsi untuk pemicu. Kami merekomendasikan Anda menggunakan "CDN offline log file generation trigger".
-
Role: Pilih AliyunCDNEventNotificationRole.
-
-
Setelah mengonfigurasi parameter pemicu, klik OK. Jika muncul pesan No Default Role Is Created for CDN Trigger, klik Authorize Now dan ikuti instruksi di layar untuk membuat role default. Jika tidak, pemicu akan dibuat segera.
-
Di Function Details, klik tab Code, lalu di editor online, masukkan kode berikut, yang mengambil offline logs dari Alibaba Cloud CDN dan menyimpannya di Object Storage Service (OSS).
-
Klik Deploy Code.
3. Buat role dan kebijakan kustom
Fungsi Function Compute memerlukan izin untuk mengakses Object Storage Service (OSS). Anda dapat memberikan izin ini dengan menyambungkan role kustom ke fungsi tersebut. Ikuti langkah-langkah berikut untuk membuat role dan kebijakan yang diperlukan.
-
Masuk ke konsol Resource Access Management (RAM). Di panel navigasi kiri, pilih Permissions > Policies.
-
Klik Create Policy dan pilih tab JSON.
-
Pada kebijakan berikut, ganti
BucketNamedengan nama bucket Anda, dan ganti ketiga kemunculanFC-NAMEdengan nama fungsi dari Langkah 2 (kami merekomendasikan 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 dan masukkan Policy Name serta Remarks. Lalu, klik OK lagi untuk membuat kebijakan (Kami merekomendasikan Anda mengatur Policy Name menjadi
AliyunCDNLogDumpAccessdan Description menjadi Izin untuk mengelola dump log offline CDN). -
Di panel navigasi kiri, pilih Identities > Roles dan klik Create Role.
-
Untuk Select Trusted Entity, pilih Alibaba Cloud Service. Untuk Trusted Service, pilih Function Compute, lalu klik OK.
-
Di kotak dialog Create Role, masukkan Role Name (kami merekomendasikan Anda menggunakan
AliyunCDNLogDumpRole) dan klik OK untuk membuat role. -
Di tab Permissions, klik Precise Authorization. Untuk Policy Type, pilih Custom Policies, dan untuk Policy Name, masukkan nama kebijakan yang Anda buat di Langkah 4 (kami merekomendasikan Anda menggunakan
AliyunCDNLogDumpAccess). Lalu, klik OK. -
Di tab Trust Policy, klik Edit Trust Policy. Di editor JSON, masukkan kebijakan kepercayaan berikut, lalu klik OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "fc.aliyuncs.com" ] } } ], "Version": "1" }
4. Sambungkan role ke fungsi
-
Di tab Functions di konsol Function Compute, pilih fungsi yang Anda buat di Langkah 2, lalu klik Configure.
-
Di halaman detail fungsi, klik tab Configure. Di bagian Advanced Settings, klik Configure.
-
Di Advanced Settings, temukan opsi Permissions - Function Role dan pilih role yang Anda buat di Langkah 3. Kami merekomendasikan Anda menggunakan
AliyunCDNLogDumpRole. Lalu, klik Deploy untuk menyambungkan role ke tugas Function Compute.
5. Uji fungsi (Opsional)
Konfigurasi sekarang telah lengkap. Karena Alibaba Cloud CDN menghasilkan offline logs dengan penundaan sekitar 24 jam, Anda tidak dapat langsung memverifikasi apakah pengaturan berfungsi. Untuk menguji fungsi segera, ikuti langkah-langkah opsional berikut.
-
Di tab Functions di konsol Function Compute, pilih fungsi yang dibuat di Langkah 2, lalu klik Configure.
-
Di halaman detail fungsi, klik tab Test. Untuk Test Event, pilih Create New Test Event. Untuk Event Template, pilih CDN (LogFileCreated). Untuk Event Name, masukkan Test_cdn_log_dump.
Editor JSON secara otomatis diisi dengan template event CDN LogFileCreated, yang mencakup bidang seperti
eventName,eventSource,region,eventTime,traceId,userIdentity(aliUid),resource(misalnya, domain adalah example.com), daneventParameter. -
Gunakan parameter yang diperoleh di bawah ini untuk mengubah parameter
filePathdalam template event. -
Klik Test Function. Setelah eksekusi selesai, hasil yang dikembalikan adalah
nulldan status eksekusi berhasil. -
Di Konsol Object Storage Service (OSS), pilih bucket yang digunakan untuk menyimpan log Alibaba Cloud CDN.
-
Klik Files dan buka direktori yang Anda konfigurasikan untuk menyimpan log Alibaba Cloud CDN. Anda akan melihat folder yang dinamai sesuai nama domain yang dipercepat. Di dalamnya, subfolder yang dinamai sesuai tanggal berisi file log yang diarsipkan. Hal ini mengonfirmasi bahwa tugas Function Compute berjalan berhasil.