Melakukan peluncuran penyebaran baru dengan aman untuk inferensi real time
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Dalam artikel ini, Anda akan mempelajari cara menyebarkan versi baru model pembelajaran mesin dalam produksi tanpa menyebabkan gangguan apa pun. Anda akan menggunakan strategi penyebaran biru-hijau (juga dikenal sebagai strategi peluncuran yang aman) untuk memperkenalkan versi baru layanan web ke produksi. Strategi ini akan memungkinkan Anda meluncurkan versi baru layanan web Anda ke subset kecil pengguna atau permintaan sebelum meluncurkannya sepenuhnya.
Artikel ini mengasumsikan Anda menggunakan titik akhir online, yaitu titik akhir yang digunakan untuk inferensi online (real-time). Ada dua jenis titik akhir online: titik akhir online terkelola dan titik akhir online Kubernetes. Untuk informasi selengkapnya tentang titik akhir dan perbedaan antara titik akhir online terkelola dan titik akhir online Kubernetes, lihat Apa itu titik akhir Azure Pembelajaran Mesin?.
Contoh utama dalam artikel ini menggunakan titik akhir online terkelola untuk penyebaran. Untuk menggunakan titik akhir Kubernetes, lihat catatan dalam dokumen ini yang sejajar dengan diskusi titik akhir online terkelola.
Dalam artikel ini, Anda akan mempelajari cara:
- Tentukan titik akhir online dengan penyebaran yang disebut "biru" untuk melayani model versi 1
- Skalakan penyebaran biru sehingga dapat menangani lebih banyak permintaan
- Sebarkan model versi 2 (disebut penyebaran "hijau") ke titik akhir, tetapi kirim penyebaran tanpa lalu lintas langsung
- Menguji penyebaran hijau dalam isolasi
- Mencerminkan persentase lalu lintas langsung ke penyebaran hijau untuk memvalidasinya
- Mengirim persentase kecil lalu lintas langsung ke penyebaran hijau
- Mengirim semua lalu lintas langsung ke penyebaran hijau
- Menghapus penyebaran biru v1 yang sekarang tidak digunakan
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Azure CLI dan ekstensi
ml
ke Azure CLI. Untuk informasi selengkapnya, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah di Pasang, siapkan, dan gunakan CLI (v2) untuk membuatnya.
Kontrol akses berbasis peran Azure (Azure RBAC) digunakan untuk memberikan akses ke operasi di Azure Machine Learning. Untuk melakukan langkah-langkah dalam artikel ini, akun pengguna Anda harus ditetapkan sebagaipemilik atau kontributor untuk ruang kerja Azure Machine Learning, atau peran khusus yang memungkinkan
Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*
. Untuk informasi selengkapnya, lihat Mengelola akses ke ruang kerja Azure Machine Learning.(Opsional) Untuk menerapkan secara lokal, Anda harus memasang Docker Engine di komputer lokal Anda. Kami sangat merekomendasikan opsi ini, jadi lebih mudah untuk menghapus masalah.
Siapkan sistem Anda
Atur variabel lingkungan
Jika belum mengatur default untuk Azure CLI, simpan pengaturan default Anda. Untuk menghindari melewati nilai untuk langganan, ruang kerja, dan grup sumber daya Anda beberapa kali, jalankan kode ini:
az account set --subscription <subscription id>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Mengkloning repositori contoh
Untuk mengikuti artikel ini, pertama-tama klon repositori contoh (azureml-examples). Kemudian, buka direktori repositori cli/
:
git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples
cd cli
Tip
Gunakan --depth 1
untuk mengkloning hanya penerapan terbaru ke repositori. Ini mengurangi waktu untuk menyelesaikan operasi.
Perintah dalam tutorial ini ada dalam file deploy-safe-rollout-online-endpoints.sh
di cli
direktori, dan file konfigurasi YAML berada di endpoints/online/managed/sample/
subdirektori.
Catatan
File konfigurasi YAML untuk titik akhir online Kubernetes berada di subdirektori endpoints/online/kubernetes/
.
Menentukan titik akhir dan penyebaran
Titik akhir online digunakan untuk inferensi online (real time). Titik akhir online berisi penyebaran yang siap menerima data dari klien dan mengirim respons kembali secara real time.
Menentukan titik akhir
Tabel berikut mencantumkan atribut kunci untuk ditentukan saat Anda menentukan titik akhir.
Atribut | KETERANGAN |
---|---|
Nama | Harus diisi. Nama titik akhir. Nama harus unik dalam wilayah Azure. Untuk informasi selengkapnya tentang aturan penamaan, lihat batas titik akhir. |
Mode autentikasi | Metode autentikasi untuk titik akhir. Pilih antara autentikasi berbasis kunci dan autentikasi key aml_token berbasis token Azure Pembelajaran Mesin . Kunci tidak kedaluwarsa, tetapi token kedaluwarsa. Untuk informasi selengkapnya tentang mengautentikasi, lihat Mengautentikasi ke titik akhir online. |
Deskripsi | Deskripsi titik akhir. |
Tag | Kamus tag untuk titik akhir. |
Lalu lintas | Aturan tentang cara merutekan lalu lintas di seluruh penyebaran. Mewakili lalu lintas sebagai kamus pasangan kunci-nilai, di mana kunci mewakili nama dan nilai penyebaran mewakili persentase lalu lintas untuk penyebaran tersebut. Anda hanya dapat mengatur lalu lintas saat penyebaran di bawah titik akhir telah dibuat. Anda juga dapat memperbarui lalu lintas untuk titik akhir online setelah penyebaran dibuat. Untuk informasi selengkapnya tentang cara menggunakan lalu lintas cermin, lihat Mengalokasikan persentase kecil lalu lintas langsung ke penyebaran baru. |
Lalu lintas cermin | Persentase lalu lintas langsung untuk dicerminkan ke penyebaran. Untuk informasi selengkapnya tentang cara menggunakan lalu lintas cermin, lihat Menguji penyebaran dengan lalu lintas cermin. |
Untuk melihat daftar lengkap atribut yang dapat Anda tentukan saat membuat titik akhir, lihat Skema YAML titik akhir online CLI (v2) atau Kelas SDK (v2) ManagedOnlineEndpoint.
Menentukan penyebaran
Penyebaran adalah kumpulan sumber daya yang diperlukan untuk menghosting model yang melakukan inferensi aktual. Tabel berikut ini menjelaskan atribut utama untuk ditentukan saat Anda menentukan penyebaran.
Atribut | KETERANGAN |
---|---|
Nama | Harus diisi. Nama penyebaran. |
Nama titik akhir 2 | Harus diisi. Nama titik akhir untuk membuat penyebaran di bawah ini. |
Model | Model yang digunakan untuk penyebaran. Nilai ini dapat berupa referensi ke model berversi yang ada di ruang kerja atau spesifikasi model sebaris. Dalam contoh, kami memiliki model scikit-learn yang melakukan regresi. |
Jalur kode | Jalur ke direktori pada lingkungan pengembangan lokal yang berisi semua kode sumber Python untuk menilai model. Anda dapat menggunakan direktori dan paket bertumpuk. |
Skrip penskoran | Kode Python yang menjalankan model pada permintaan input tertentu. Nilai ini dapat menjadi jalur relatif ke file penilaian di direktori kode sumber. Skrip penilaian menerima data yang dikirimkan ke layanan web yang disebarkan dan meneruskannya ke model. Skrip kemudian menjalankan model dan mengembalikan responsnya ke klien. Skrip penilaian khusus untuk model Anda dan harus memahami data yang diharapkan model sebagai input dan kembali sebagai output. Dalam contoh ini, kita memiliki file score.py . Kode Python ini harus memiliki fungsi init() dan fungsi run() . Fungsi init() akan dipanggil setelah model dibuat atau diperbarui (Anda dapat menggunakannya untuk menyimpan model dalam memori, misalnya). Fungsi run() ini disebut pada setiap pemanggilan titik akhir untuk melakukan penilaian/prediksi aktual. |
Lingkungan | Harus diisi. Lingkungan untuk menghosting model dan kode. Nilai ini dapat berupa referensi ke lingkungan berversi yang ada di ruang kerja atau spesifikasi lingkungan sebaris. Lingkungan dapat menjadi gambar Docker dengan dependensi Conda, Dockerfile, atau lingkungan terdaftar. |
Jenis instans | Harus diisi. Ukuran VM untuk digunakan untuk penyebaran. Untuk daftar ukuran yang didukung, lihat Daftar SKU titik akhir online terkelola. |
Jumlah Instans | Harus diisi. Jumlah instans yang digunakan untuk penyebaran. Mendasarkan nilai pada beban kerja yang Anda harapkan. Untuk ketersediaan tinggi, kami sarankan Anda menetapkan nilai ke setidaknya 3 . Kami mencadangkan kuota tambahan sebesar 20% untuk melakukan peningkatan. Untuk informasi selengkapnya, lihat batasan untuk titik akhir online. |
Untuk melihat daftar lengkap atribut yang dapat Anda tentukan saat membuat penyebaran, lihat Skema YAML penyebaran online terkelola CLI (v2) atau SDK (v2) ManagedOnlineDeployment Class.
Buat titik akhir online
Pertama-tama atur nama titik akhir lalu konfigurasikan. Dalam artikel ini, Anda akan menggunakan file titik akhir/online/terkelola/sampel/endpoint.yml untuk mengonfigurasi titik akhir. Cuplikan berikut menunjukkan konten file:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json
name: my-endpoint
auth_mode: key
Referensi untuk format YAML titik akhir dijelaskan dalam tabel berikut. Untuk mempelajari cara menentukan atribut ini, lihat referensi YAML titik akhir online. Untuk informasi tentang batasan yang terkait dengan titik akhir online terkelola, lihat batasan untuk titik akhir online.
Kunci | Deskripsi |
---|---|
$schema |
(Optional) Skema YAML. Untuk melihat semua opsi yang tersedia dalam file YAML, Anda dapat melihat skema dalam cuplikan kode sebelumnya di browser. |
name |
Nama titik akhir. |
auth_mode |
Gunakan key untuk autentikasi berbasis kunci. Gunakan aml_token untuk autentikasi berbasis token Azure Machine Learning. Untuk mendapatkan token terbaru, gunakan az ml online-endpoint get-credentials perintah . |
Untuk membuat titik akhir online:
Atur nama titik akhir Anda:
Untuk Unix, jalankan perintah ini (ganti
YOUR_ENDPOINT_NAME
dengan nama unik):export ENDPOINT_NAME="<YOUR_ENDPOINT_NAME>"
Penting
Nama titik akhir harus unik dalam satu wilayah Azure. Misalnya, di wilayah Azure
westus2
, hanya ada satu titik akhir dengan namamy-endpoint
.Buat titik akhir di cloud:
Jalankan kode berikut untuk menggunakan
endpoint.yml
file untuk mengonfigurasi titik akhir:az ml online-endpoint create --name $ENDPOINT_NAME -f endpoints/online/managed/sample/endpoint.yml
Membuat penyebaran 'biru'
Dalam artikel ini, Anda akan menggunakan file titik akhir/online/terkelola/sampel/blue-deployment.yml untuk mengonfigurasi aspek utama penyebaran. Cuplikan berikut menunjukkan konten file:
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
path: ../../model-1/model/
code_configuration:
code: ../../model-1/onlinescoring/
scoring_script: score.py
environment:
conda_file: ../../model-1/environment/conda.yaml
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
Untuk membuat penyebaran bernama blue
untuk titik akhir Anda, jalankan perintah berikut untuk menggunakan file untuk blue-deployment.yml
mengonfigurasi
az ml online-deployment create --name blue --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/blue-deployment.yml --all-traffic
Penting
Bendera --all-traffic
dalam az ml online-deployment create
mengalokasikan 100% lalu lintas titik akhir ke penyebaran biru yang baru dibuat.
blue-deployment.yaml
Dalam file, kami menentukan path
(tempat mengunggah file dari) sebaris. CLI secara otomatis mengunggah file dan mendaftarkan model dan lingkungan. Sebagai praktik terbaik untuk produksi, Anda harus mendaftarkan model dan lingkungan secara terpisah dan menentukan nama dan versi terdaftar dalam YAML. Gunakan formulir model: azureml:my-model:1
atau environment: azureml:my-env:1
.
Untuk pendaftaran, Anda dapat mengekstrak definisi YAML dari model
dan environment
ke file YAML terpisah dan menggunakan perintah az ml model create
dan az ml environment create
. Untuk mempelajari perintah ini lebih lanjut, jalankan az ml model create -h
dan az ml environment create -h
.
Untuk informasi selengkapnya tentang mendaftarkan model Anda sebagai aset, lihat Mendaftarkan model Anda sebagai aset di Pembelajaran Mesin dengan menggunakan CLI. Untuk informasi selengkapnya tentang membuat lingkungan, lihat Mengelola lingkungan Azure Pembelajaran Mesin dengan CLI & SDK (v2).
Mengonfirmasi penyebaran anda yang sudah ada
Salah satu cara untuk mengonfirmasi penyebaran yang ada adalah dengan memanggil titik akhir Anda sehingga dapat menilai model Anda untuk permintaan input tertentu. Saat memanggil titik akhir melalui CLI atau Python SDK, Anda dapat memilih untuk menentukan nama penyebaran yang akan menerima lalu lintas masuk.
Catatan
Tidak seperti CLI atau Python SDK, studio Azure Pembelajaran Mesin mengharuskan Anda menentukan penyebaran saat Anda memanggil titik akhir.
Memanggil titik akhir dengan nama penyebaran
Jika Anda memanggil titik akhir dengan nama penyebaran yang akan menerima lalu lintas, Azure Pembelajaran Mesin akan merutekan lalu lintas titik akhir langsung ke penyebaran yang ditentukan dan mengembalikan outputnya. Anda dapat menggunakan --deployment-name
opsi untuk CLI v2, atau deployment_name
opsi untuk SDK v2 untuk menentukan penyebaran.
Memanggil titik akhir tanpa menentukan penyebaran
Jika Anda memanggil titik akhir tanpa menentukan penyebaran yang akan menerima lalu lintas, Azure Pembelajaran Mesin akan merutekan lalu lintas masuk titik akhir ke penyebaran di titik akhir berdasarkan pengaturan kontrol lalu lintas.
Pengaturan kontrol lalu lintas mengalokasikan persentase lalu lintas masuk yang ditentukan ke setiap penyebaran di titik akhir. Misalnya, jika aturan lalu lintas Anda menentukan bahwa penyebaran tertentu di titik akhir Anda akan menerima lalu lintas masuk 40% dari waktu, Azure Pembelajaran Mesin akan merutekan 40% lalu lintas titik akhir ke penyebaran tersebut.
Anda dapat melihat status titik akhir dan penyebaran yang ada dengan menjalankan:
az ml online-endpoint show --name $ENDPOINT_NAME
az ml online-deployment show --name blue --endpoint $ENDPOINT_NAME
Anda akan melihat titik akhir yang diidentifikasi oleh $ENDPOINT_NAME
dan, penyebaran yang disebut blue
.
Menguji titik akhir dengan data sampel
Titik akhir dapat dipanggil menggunakan invoke
perintah . Kami akan mengirimkan permintaan sampel menggunakan file json.
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
Menskalakan penyebaran yang ada untuk menangani lebih banyak lalu lintas
Dalam penyebaran yang dijelaskan dalam Menyebarkan dan menilai model pembelajaran mesin dengan titik akhir online, Anda mengatur instance_count
ke nilai 1
dalam file yaml penyebaran. Anda dapat meluaskan skala menggunakan perintah update
:
az ml online-deployment update --name blue --endpoint-name $ENDPOINT_NAME --set instance_count=2
Catatan
Perhatikan bahwa dalam perintah di atas kami menggunakan --set
untuk mengambil alih konfigurasi penyebaran. Atau Anda dapat memperbarui file yaml dan meneruskannya sebagai input ke perintah update
menggunakan input --file
.
Menyebarkan model baru, tetapi belum mengirimkannya lalu lintas
Buat penyebaran baru bernama green
:
az ml online-deployment create --name green --endpoint-name $ENDPOINT_NAME -f endpoints/online/managed/sample/green-deployment.yml
Karena kami belum secara eksplisit mengalokasikan lalu lintas apa pun ke green
, lalu lintas tersebut tidak memiliki lalu lintas yang dialokasikan untuknya. Anda dapat memverifikasi hal tersebut menggunakan perintah:
az ml online-endpoint show -n $ENDPOINT_NAME --query traffic
Menguji penyebaran baru
Meskipun green
memiliki 0% lalu lintas yang dialokasikan, Anda dapat memanggilnya secara langsung dengan menentukan nama --deployment
:
az ml online-endpoint invoke --name $ENDPOINT_NAME --deployment-name green --request-file endpoints/online/model-2/sample-request.json
Jika Anda ingin menggunakan klien REST untuk memanggil penyebaran secara langsung tanpa melalui aturan lalu lintas, atur header HTTP berikut: azureml-model-deployment: <deployment-name>
. Cuplikan kode di bawah ini menggunakan curl
untuk memanggil penyebaran secara langsung. Cuplikan kode harus berfungsi di lingkungan Unix/WSL:
# get the scoring uri
SCORING_URI=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query scoring_uri)
# use curl to invoke the endpoint
curl --request POST "$SCORING_URI" --header "Authorization: Bearer $ENDPOINT_KEY" --header 'Content-Type: application/json' --header "azureml-model-deployment: green" --data @endpoints/online/model-2/sample-request.json
Menguji penyebaran dengan lalu lintas yang dicerminkan
Setelah menguji penyebaran, Anda dapat mencerminkan green
(atau menyalin) persentase lalu lintas langsung ke penyebaran tersebut. Pencerminan lalu lintas (juga disebut bayangan) tidak mengubah hasil yang dikembalikan ke klien—permintaan masih mengalir 100% ke blue
penyebaran. Persentase lalu lintas yang dicerminkan disalin dan dikirimkan ke green
penyebaran sehingga Anda dapat mengumpulkan metrik dan pengelogan tanpa memengaruhi klien Anda. Pencerminan berguna saat Anda ingin memvalidasi penyebaran baru tanpa memengaruhi klien. Misalnya, Anda dapat menggunakan pencerminan untuk memeriksa apakah latensi berada dalam batas yang dapat diterima atau untuk memeriksa bahwa tidak ada kesalahan HTTP. Menguji penyebaran baru dengan pencerminan/bayangan lalu lintas juga dikenal sebagai pengujian bayangan. Penyebaran yang menerima lalu lintas cermin (dalam hal ini, green
penyebaran) juga dapat disebut penyebaran bayangan.
Pencerminan memiliki batasan berikut:
- Pencerminan didukung untuk CLI (v2) (versi 2.4.0 atau lebih tinggi) dan Python SDK (v2) (versi 1.0.0 atau lebih tinggi). Jika Anda menggunakan versi CLI/SDK yang lebih lama untuk memperbarui titik akhir, Anda akan kehilangan pengaturan lalu lintas cermin.
- Pencerminan saat ini tidak didukung untuk titik akhir online Kubernetes.
- Anda hanya dapat mencerminkan lalu lintas ke satu penyebaran di titik akhir.
- Persentase maksimum lalu lintas yang dapat Anda cerminkan adalah 50%. Batas ini untuk mengurangi efek pada kuota bandwidth titik akhir Anda (default 5 MBPS)—bandwidth titik akhir Anda dibatasi jika Anda melebihi kuota yang dialokasikan. Untuk informasi tentang pembatasan bandwidth pemantauan, lihat Memantau titik akhir online terkelola.
Perhatikan juga perilaku berikut:
- Penyebaran dapat dikonfigurasi untuk hanya menerima lalu lintas langsung atau lalu lintas cermin, bukan keduanya.
- Saat Anda memanggil titik akhir, Anda dapat menentukan nama salah satu penyebarannya — bahkan penyebaran bayangan — untuk mengembalikan prediksi.
- Saat Anda memanggil titik akhir dengan nama penyebaran yang akan menerima lalu lintas masuk, Azure Pembelajaran Mesin tidak akan mencerminkan lalu lintas ke penyebaran bayangan. Azure Pembelajaran Mesin mencerminkan lalu lintas ke penyebaran bayangan dari lalu lintas yang dikirim ke titik akhir saat Anda tidak menentukan penyebaran.
Sekarang, mari kita atur penyebaran hijau untuk menerima 10% lalu lintas cermin. Klien masih akan menerima prediksi dari penyebaran biru saja.
Perintah berikut mencerminkan 10% lalu lintas ke penyebaran green
:
az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=10"
Anda dapat menguji lalu lintas cermin dengan memanggil titik akhir beberapa kali tanpa menentukan penyebaran untuk menerima lalu lintas masuk:
for i in {1..20} ; do
az ml online-endpoint invoke --name $ENDPOINT_NAME --request-file endpoints/online/model-1/sample-request.json
done
Anda dapat mengonfirmasi bahwa persentase spesifik lalu lintas dikirim ke green
penyebaran dengan melihat log dari penyebaran:
az ml online-deployment get-logs --name blue --endpoint $ENDPOINT_NAME
Setelah menguji, Anda dapat mengatur lalu lintas cermin ke nol untuk menonaktifkan pencerminan:
az ml online-endpoint update --name $ENDPOINT_NAME --mirror-traffic "green=0"
Mengalokasikan sebagian kecil lalu lintas langsung ke penyebaran baru
Setelah Anda menguji penyebaran green
, alokasikan sebagian kecil lalu lintas ke penyebaran:
az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=90 green=10"
Tip
Persentase lalu lintas total harus berjumlah 0% (untuk menonaktifkan lalu lintas) atau 100% (untuk mengaktifkan lalu lintas).
Sekarang, penyebaran Anda green
menerima 10% dari semua lalu lintas langsung. Klien akan menerima prediksi dari blue
penyebaran dan green
.
Mengirim semua lalu lintas ke penyebaran baru
Setelah Anda sepenuhnya puas dengan penyebaran Anda green
, alihkan semua lalu lintas ke penyebaran tersebut.
az ml online-endpoint update --name $ENDPOINT_NAME --traffic "blue=0 green=100"
Menghapus penyebaran lama
Gunakan langkah-langkah berikut untuk menghapus penyebaran individual dari titik akhir online terkelola. Menghapus penyebaran individual memang memengaruhi penyebaran lain di titik akhir online terkelola:
az ml online-deployment delete --name blue --endpoint $ENDPOINT_NAME --yes --no-wait
Menghapus titik akhir dan penyebaran
Jika Anda tidak akan menggunakan titik akhir dan penyebaran, Anda harus menghapusnya. Dengan menghapus titik akhir, Anda juga akan menghapus semua penyebaran yang mendasar.
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait
Konten terkait
- Telusuri sampel titik akhir online
- Menyebarkan model dengan REST
- Menggunakan isolasi jaringan dengan titik akhir online terkelola
- Mengakses sumber daya Azure dengan titik akhir online dan identitas terkelola
- Memantau titik akhir online terkelola
- Mengelola dan meningkatkan kuota untuk sumber daya dengan Azure Machine Learning
- Melihat biaya untuk titik akhir online terkelola Azure Machine Learning
- Daftar SKU titik akhir online yang terkelola
- Memecahkan masalah penyebaran dan penilaian titik akhir online
- Referensi YAML titik akhir online