Tutorial: Menjalankan kode JavaScript dalam sesi penerjemah kode di Azure Container Apps (pratinjau)
Tutorial ini menunjukkan cara menjalankan kode JavaScript di sesi dinamis Azure Container Apps menggunakan API HTTP.
Di tutorial ini, Anda akan:
- Membuat sesi penerjemah kode baru
- Mengatur konteks keamanan yang sesuai untuk kumpulan sesi Anda
- Teruskan kode JavaScript untuk menjalankan aplikasi kontainer
Catatan
Fitur penerjemah kode JavaScript di sesi dinamis Azure Container Apps saat ini dalam pratinjau. Untuk informasi selengkapnya, lihat batasan pratinjau.
Prasyarat
Anda memerlukan sumber daya berikut sebelum memulai tutorial ini.
Sumber daya | Deskripsi |
---|---|
Akun Azure | Anda memerlukan akun Azure dengan langganan aktif. Jika Anda tidak memilikinya, Anda dapat membuatnya secara gratis. |
Azure CLI | Instal Azure CLI. |
Siapkan
Mulailah dengan menyiapkan Azure CLI dengan pembaruan terbaru dan masuk ke Azure.
Perbarui Azure CLI ke versi terbaru.
az upgrade
Daftarkan penyedia sumber
Microsoft.App
.az provider register --namespace Microsoft.App
Instal versi terbaru ekstensi CLI Azure Container Apps.
az extension add \ --name containerapp \ --allow-preview true --upgrade
Masuk ke Azure.
az login
Kueri untuk ID langganan Azure Anda dan atur nilai ke variabel.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
Atur variabel yang digunakan dalam prosedur ini.
Sebelum Anda menjalankan perintah berikut, pastikan untuk mengganti tempat penampung yang dikelilingi dengan
<>
nilai Anda sendiri.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION="northcentralus"
Anda menggunakan variabel ini untuk membuat sumber daya dalam langkah-langkah berikut.
Mengatur langganan yang ingin Anda gunakan untuk membuat grup sumber daya
az account set -s $SUBSCRIPTION_ID
Buat grup sumber daya.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Membuat kumpulan sesi penerjemah kode
az containerapp sessionpool create
Gunakan perintah untuk membuat kumpulan sesi Node.js yang bertanggung jawab untuk menjalankan kode JavaScript arbitrer.
az containerapp sessionpool create \
--name $SESSION_POOL_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--max-sessions 5 \
--network-status EgressEnabled \
--container-type NodeLTS \
--cooldown-period 300
Mengatur penetapan peran untuk API eksekusi kode
Untuk berinteraksi dengan API kumpulan sesi, Anda harus menggunakan identitas dengan penetapan Azure ContainerApps Session Executor
peran. Dalam tutorial ini, Anda menggunakan identitas pengguna ID Microsoft Entra untuk memanggil API.
Mengkueri ID objek pengguna Anda.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
Tetapkan peran ke identitas Anda.
az role assignment create \ --role "Azure ContainerApps Session Executor" \ --assignee-object-id $USER_OBJECT_ID \ --assignee-principal-type User \ --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME"
Mendapatkan token pembawa
Untuk akses langsung ke API kumpulan sesi, buat token akses untuk disertakan Authorization
di header permintaan Anda. Pastikan token berisi klaim audiens (aud
) dengan nilai https://dynamicsessions.io
. Untuk informasi selengkapnya, lihat aturan autentikasi dan otorisasi .
Mendapatkan token akses.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
Buat variabel untuk menahan header permintaan.
AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"
Header ini menyertai permintaan yang Anda buat ke titik akhir aplikasi Anda.
Mendapatkan titik akhir manajemen kumpulan sesi
Gunakan perintah berikut untuk mengembalikan titik akhir aplikasi.
SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)
Titik akhir ini adalah lokasi tempat Anda melakukan panggilan API untuk menjalankan payload kode Anda dalam sesi penerjemah kode.
Menjalankan kode dalam sesi Anda
Sekarang setelah Anda memiliki token pembawa untuk membuat konteks keamanan, dan titik akhir kumpulan sesi, Anda dapat mengirim permintaan ke aplikasi untuk menjalankan blok kode Anda.
Jalankan perintah berikut untuk menjalankan kode JavaScript untuk mencatat "halo dunia" di aplikasi Anda.
curl -v -X 'POST' -H "$AUTH_HEADER" "$SESSION_POOL_MANAGEMENT_ENDPOINT/code/execute?api-version=2024-02-02-preview&identifier=test" -H 'Content-Type: application/json' -d '
{
"properties": {
"codeInputType": "inline",
"executionType": "synchronous",
"code": "console.log(\"hello-world\")"
}
}'
Anda akan melihat output yang menyerupai contoh berikut.
{
"properties": {
"status": "Success",
"stdout": "hello-world\n",
"stderr": "",
"executionResult": "",
"executionTimeInMilliseconds": 5
}
}
Anda dapat menemukan lebih banyak sampel API penerjemah kode di GitHub.
Membersihkan sumber daya
Sumber daya yang dibuat dalam tutorial ini berpengaruh pada tagihan Azure Anda. Jika Anda tidak akan menggunakan layanan ini dalam jangka panjang, jalankan perintah berikut untuk menghapus semua yang dibuat dalam tutorial ini.
az group delete \
--resource-group $RESOURCE_GROUP