Gambaran umum sesi dinamis Azure Container Apps
Sesi dinamis Azure Container Apps menyediakan akses cepat ke lingkungan terkotakpasir aman yang ideal untuk menjalankan kode atau aplikasi yang memerlukan isolasi yang kuat dari beban kerja lain.
Sesi memiliki atribut berikut:
Isolasi yang kuat: Sesi diisolasi satu sama lain dan dari lingkungan host. Setiap sesi berjalan dalam kotak pasir Hyper-V sendiri, menyediakan keamanan dan isolasi tingkat perusahaan. Secara opsional, Anda dapat mengaktifkan isolasi jaringan untuk lebih meningkatkan keamanan.
Akses sederhana: Sesi diakses melalui REST API. Pengidentifikasi unik menandai setiap sesi. Jika sesi dengan pengidentifikasi tertentu tidak ada, sesi baru akan dialokasikan secara otomatis.
Dikelola sepenuhnya: Platform sepenuhnya mengelola siklus hidup sesi. Sesi secara otomatis dibersihkan ketika tidak lagi digunakan.
Startup cepat: Sesi baru dialokasikan dalam milidetik. Start-up cepat dicapai dengan secara otomatis mempertahankan kumpulan sesi yang siap tetapi tidak dialokasikan.
Dapat diskalakan: Sesi dapat berjalan pada skala tinggi. Anda dapat menjalankan ratusan atau ribuan sesi secara bersamaan.
Jenis sesi
Azure Container Apps mendukung dua jenis sesi:
Tipe | Deskripsi | Model tagihan |
---|---|---|
Penerjemah kode | Penerjemah kode yang dikelola sepenuhnya | Per sesi (konsumsi) |
Kontainer kustom | Bawa kontainer Anda sendiri | Paket Khusus Container Apps |
Penerjemah kode
Sesi penerjemah kode memungkinkan Anda menjalankan kode di kotak pasir yang telah diinstal sebelumnya dengan pustaka populer. Mereka ideal untuk menjalankan kode yang tidak tepercaya, seperti kode yang disediakan oleh pengguna aplikasi atau kode Anda yang dihasilkan oleh model bahasa besar (LLM). Pelajari selengkapnya tentang sesi penerjemah kode.
Kontainer kustom
Sesi kontainer kustom memungkinkan Anda menjalankan gambar kontainer Anda sendiri dalam kotak pasir yang aman dan terisolasi. Anda dapat menggunakannya untuk menjalankan penerjemah kode kustom untuk bahasa yang tidak didukung di luar kotak, atau untuk menjalankan beban kerja yang memerlukan isolasi yang kuat. Pelajari selengkapnya tentang sesi kontainer kustom.
Konsep
Konsep utama dalam sesi dinamis Azure Container Apps adalah kumpulan sesi dan sesi.
Kumpulan sesi
Untuk menyediakan waktu alokasi sesi sub-detik, Azure Container Apps mempertahankan kumpulan sesi yang siap tetapi tidak dialokasikan. Saat Anda mengirimkan permintaan ke sesi baru, platform mengalokasikan sesi dari kumpulan kepada Anda. Saat sesi dialokasikan, platform secara otomatis mengisi ulang kumpulan untuk mempertahankan jumlah sesi siap yang konstan.
Anda dapat mengonfigurasi kumpulan untuk mengatur jumlah maksimum sesi yang dapat dialokasikan secara bersamaan melalui maxConcurrentSessions
properti . Anda dapat mengatur durasi tunggu dari permintaan terakhir sebelum sesi dihapus properti cooldownPeriodInSeconds
. Untuk sesi kontainer kustom, Anda juga dapat menentukan gambar kontainer dan pengaturan yang akan digunakan untuk sesi di kumpulan, termasuk jumlah target sesi agar tetap siap di kumpulan melalui readySessionInstances
.
Sesi
Sesi adalah lingkungan terkotakpasir yang menjalankan kode atau aplikasi Anda. Setiap sesi diisolasi dari sesi lain dan dari lingkungan host dengan kotak pasir Hyper-V . Secara opsional, Anda dapat mengaktifkan isolasi jaringan untuk lebih meningkatkan keamanan.
Anda berinteraksi dengan sesi di kumpulan sesi dengan mengirim permintaan HTTP. Setiap kumpulan sesi memiliki titik akhir manajemen kumpulan yang unik.
Untuk sesi penerjemah kode, Anda juga dapat menggunakan integrasi dengan kerangka kerja LLM.
Pengidentifikasi sesi
Untuk mengirim permintaan HTTP ke sesi, Anda harus menyediakan pengidentifikasi sesi dalam permintaan. Anda meneruskan pengidentifikasi sesi dalam parameter kueri bernama identifier
di URL saat Anda membuat permintaan ke sesi.
- Jika sesi dengan pengidentifikasi sudah ada, permintaan dikirim ke sesi yang ada.
- Jika sesi dengan pengidentifikasi tidak ada, sesi baru secara otomatis dialokasikan sebelum permintaan dikirim ke sesi tersebut.
Format pengidentifikasi
Pengidentifikasi sesi adalah string bentuk bebas, yang berarti Anda dapat menentukannya dengan cara apa pun yang sesuai dengan kebutuhan aplikasi Anda.
Pengidentifikasi sesi adalah string yang Anda tentukan unik dalam kumpulan sesi. Jika Anda membangun aplikasi web, Anda dapat menggunakan ID pengguna sebagai pengidentifikasi sesi. Jika Anda membuat chatbot, Anda dapat menggunakan ID percakapan.
Pengidentifikasi harus berupa string yang panjangnya 4 hingga 128 karakter dan hanya dapat berisi karakter alfanumerik dan karakter khusus dari daftar ini: |
, , -
, &
%
$
(
{
#
}
)
^
, [
, ]
, ;
, <
, , dan .>
Melindungi pengidentifikasi sesi
Pengidentifikasi sesi adalah informasi sensitif yang harus Anda kelola dengan aman. Aplikasi Anda perlu memastikan setiap pengguna atau penyewa hanya memiliki akses ke sesi mereka sendiri.
Strategi khusus yang mencegah penyalahgunaan pengidentifikasi sesi berbeda tergantung pada desain dan arsitektur aplikasi Anda. Namun, aplikasi Anda harus selalu memiliki kontrol penuh atas pembuatan dan penggunaan pengidentifikasi sesi sehingga pengguna berbahaya tidak dapat mengakses sesi pengguna lain.
Contoh strategi meliputi:
- Satu sesi per pengguna: Jika aplikasi Anda menggunakan satu sesi per pengguna, setiap pengguna harus diautentikasi dengan aman, dan aplikasi Anda harus menggunakan pengidentifikasi sesi unik untuk setiap pengguna yang masuk.
- Satu sesi per percakapan agen: Jika aplikasi Anda menggunakan satu sesi per percakapan agen AI, pastikan aplikasi Anda menggunakan pengidentifikasi sesi unik untuk setiap percakapan yang tidak dapat dimodifikasi oleh pengguna akhir.
Penting
Kegagalan untuk mengamankan akses ke sesi dapat mengakibatkan penyalahgunaan atau akses tidak sah ke data yang disimpan dalam sesi pengguna Anda.
Autentikasi dan otorisasi
Saat Anda mengirim permintaan ke sesi menggunakan API manajemen kumpulan, autentikasi ditangani menggunakan token Microsoft Entra (sebelumnya Azure Active Directory). Hanya token Microsoft Entra dari identitas milik peran Pelaksana Sesi Azure ContainerApps pada kumpulan sesi yang berwenang untuk memanggil API manajemen kumpulan.
Untuk menetapkan peran ke identitas, gunakan perintah Azure CLI berikut:
az role assignment create \
--role "Azure ContainerApps Session Executor" \
--assignee <PRINCIPAL_ID> \
--scope <SESSION_POOL_RESOURCE_ID>
Jika Anda menggunakan integrasi kerangka kerja LLM, kerangka kerja menangani pembuatan dan manajemen token untuk Anda. Pastikan bahwa aplikasi dikonfigurasi dengan identitas terkelola dengan penetapan peran yang diperlukan pada kumpulan sesi.
Jika Anda menggunakan titik akhir API manajemen kumpulan secara langsung, Anda harus membuat token dan menyertakannya di Authorization
header permintaan HTTP Anda. Selain penetapan peran yang disebutkan sebelumnya, token perlu berisi klaim audiens (aud
) dengan nilai https://dynamicsessions.io
.
Untuk menghasilkan token menggunakan Azure CLI, jalankan perintah berikut:
az account get-access-token --resource https://dynamicsessions.io
Penting
Token yang valid dapat digunakan untuk membuat dan mengakses sesi apa pun di kumpulan. Jaga keamanan token Anda dan jangan bagikan dengan pihak yang tidak tepercaya. Pengguna akhir harus mengakses sesi melalui aplikasi Anda, bukan secara langsung. Mereka seharusnya tidak pernah memiliki akses ke token yang digunakan untuk mengautentikasi permintaan ke kumpulan sesi.
Siklus Hidup
Runtime Container Apps secara otomatis mengelola siklus hidup untuk setiap sesi dalam kumpulan sesi.
Tertunda: Saat sesi dimulai, sesi dalam status tertunda. Jumlah waktu yang dihabiskan sesi dalam status tertunda tergantung pada gambar kontainer dan pengaturan yang Anda tentukan untuk kumpulan sesi. Sesi tertunda tidak ditambahkan ke kumpulan sesi siap.
Siap: Ketika sesi selesai dimulai dan siap, sesi ditambahkan ke kumpulan. Sesi tersedia pada status ini untuk alokasi. Untuk sesi kontainer kustom, Anda dapat menentukan jumlah target sesi siap untuk disimpan di kumpulan. Tingkatkan jumlah ini jika sesi dialokasikan lebih cepat daripada kumpulan yang sedang diisi ulang.
Dialokasikan: Saat Anda mengirim permintaan ke sesi yang tidak berjalan, kumpulan menyediakan sesi baru dan menempatkannya dalam status dialokasikan. Permintaan berikutnya dengan pengidentifikasi sesi yang sama dirutekan ke sesi yang sama.
Menghapus: Saat sesi berhenti menerima permintaan selama waktu yang ditentukan oleh
cooldownPeriodInSeconds
pengaturan, sesi dan kotak pasir Hyper-V-nya sepenuhnya dan dihapus dengan aman.
Keamanan
Sesi dinamis Azure Container Apps dibuat untuk menjalankan kode dan aplikasi yang tidak tepercaya di lingkungan yang aman dan terisolasi. Meskipun sesi diisolasi satu sama lain, apa pun dalam satu sesi, termasuk file dan variabel lingkungan, dapat diakses oleh pengguna sesi. Anda hanya boleh mengonfigurasi atau mengunggah data sensitif ke sesi jika Anda mempercayai pengguna sesi.
Secara default, sesi dicegah membuat permintaan jaringan keluar. Anda dapat mengontrol akses jaringan dengan mengonfigurasi pengaturan status jaringan pada kumpulan sesi.
Selain itu, ikuti panduan di bagian autentikasi dan otorisasi untuk memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses sesi dan di bagian melindungi pengidentifikasi sesi untuk memastikan bahwa pengidentifikasi sesi aman.
Ketersediaan wilayah
Sesi dinamis tersedia di wilayah berikut:
Wilayah | Penerjemah kode | Kontainer kustom |
---|---|---|
Australia Timur | ✔ | ✔ |
US Tengah EUAP | ✔ | ✔ |
US Timur 2 EUAP | ✔ | ✔ |
AS Timur | ✔ | ✔ |
Asia Timur | ✔ | ✔ |
Jerman Barat Tengah | ✔ | ✔ |
Italia Utara | ✔ | ✔ |
AS Tengah Bagian Utara | ✔ | - |
Polandia Tengah | ✔ | ✔ |
Swiss Utara | ✔ | ✔ |
AS Tengah Bagian Barat | ✔ | ✔ |
US Barat 2 | ✔ | ✔ |
Konten terkait
Jenis sesi: Pelajari tentang berbagai jenis sesi dinamis:
Tutorial: Bekerja langsung dengan REST API atau melalui agen LLM:
- Gunakan agen LLM:
- Menggunakan REST API