Bagikan melalui


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.

Catatan

Sesi dinamis Azure Container Apps saat ini dalam pratinjau.

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.

Pengidentifikasi sesi

Saat berinteraksi dengan sesi di kumpulan, Anda harus menentukan pengidentifikasi sesi untuk mengelola setiap sesi. Pengidentifikasi sesi adalah string bentuk bebas, yang berarti Anda dapat menentukannya dengan cara apa pun yang sesuai dengan kebutuhan aplikasi Anda. Pengidentifikasi ini adalah elemen kunci dalam menentukan perilaku sesi:

  • Penggunaan kembali sesi yang ada: Sesi ini digunakan kembali jika sudah ada sesi berjalan yang cocok dengan pengidentifikasi.
  • Alokasi sesi baru: Jika tidak ada sesi yang berjalan yang cocok dengan pengidentifikasi, sesi baru secara otomatis dialokasikan dari kumpulan.

Pengidentifikasi sesi adalah string yang Anda tentukan unik dalam kumpulan sesi. Jika Anda membuat aplikasi web, Anda dapat menggunakan ID pengguna. 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 .>

Anda meneruskan pengidentifikasi sesi dalam parameter kueri bernama identifier di URL saat Anda membuat permintaan ke sesi.

Untuk sesi penerjemah kode, Anda juga dapat menggunakan integrasi dengan kerangka kerja LLM. Kerangka kerja menangani pembuatan dan manajemen token untuk Anda. Pastikan bahwa aplikasi dikonfigurasi dengan identitas terkelola yang memiliki penetapan peran yang diperlukan pada kumpulan sesi.

Melindungi pengidentifikasi sesi

Pengidentifikasi sesi adalah informasi sensitif yang memerlukan proses aman saat Anda membuat dan mengelola nilainya. Untuk melindungi nilai ini, aplikasi Anda harus 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

Autentikasi ditangani menggunakan token Microsoft Entra (sebelumnya Azure Active Directory). Token Microsoft Entra yang valid dihasilkan oleh identitas milik peran Pelaksana Sesi dan Kontributor Azure ContainerApps pada kumpulan sesi.

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>

az role assignment create \
    --role "Contributor" \
    --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.

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.

Batasan pratinjau

Sesi dinamis Azure Container Apps saat ini dalam pratinjau. Batasan berikut berlaku:

  • Ini hanya tersedia di wilayah berikut:

    Wilayah Penerjemah kode Kontainer kustom
    Asia Timur
    AS Timur
    US Barat 2
    AS Tengah Bagian Utara -
    Eropa Utara -
  • Pengelogan tidak didukung. Aplikasi Anda dapat mencatat permintaan ke API manajemen kumpulan sesi dan responsnya.

Langkah berikutnya