Oktatóanyag: JavaScript-kód futtatása kódértelmezési munkamenetben az Azure Container Appsben (előzetes verzió)
Ez az oktatóanyag bemutatja, hogyan hajthat végre JavaScript-kódot az Azure Container Apps dinamikus munkameneteiben HTTP API használatával.
Ebben az oktatóanyagban a következőket fogja elkönyvelni:
- Új kódértelmező-munkamenet létrehozása
- A munkamenetkészlet megfelelő biztonsági környezetének beállítása
- JavaScript-kód átadása a tárolóalkalmazás futtatásához
Feljegyzés
Az Azure Container Apps dinamikus munkameneteinek JavaScript-kódértelmező funkciója jelenleg előzetes verzióban érhető el. További információkért tekintse meg az előzetes verzióra vonatkozó korlátozásokat.
Előfeltételek
Az oktatóanyag megkezdése előtt az alábbi erőforrásokra van szüksége.
Erőforrás | Leírás |
---|---|
Azure-fiók | Aktív előfizetéssel rendelkező Azure-fiókra van szüksége. Ha még nem rendelkezik fiókkal, ingyen létrehozhat egyet. |
Azure CLI | Telepítse az Azure CLI-t. |
Beállítás
Először készítse elő az Azure CLI-t a legújabb frissítésekkel, és jelentkezzen be az Azure-ba.
Frissítse az Azure CLI-t a legújabb verzióra.
az upgrade
Regisztrálja az erőforrás-szolgáltatót
Microsoft.App
.az provider register --namespace Microsoft.App
Telepítse az Azure Container Apps CLI-bővítmény legújabb verzióját.
az extension add \ --name containerapp \ --allow-preview true --upgrade
Jelentkezzen be az Azure-ba.
az login
Kérdezze le az Azure-előfizetés azonosítóját, és állítsa be az értéket egy változóra.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
Állítsa be az eljárásban használt változókat.
A következő parancs futtatása előtt cserélje le a helyőrzőket
<>
a saját értékeire.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION="northcentralus"
Ezeket a változókat használva hozza létre az erőforrásokat az alábbi lépésekben.
Az erőforráscsoport létrehozásához használni kívánt előfizetés beállítása
az account set -s $SUBSCRIPTION_ID
Hozzon létre egy erőforráscsoportot.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Kódértelmező munkamenetkészletének létrehozása
az containerapp sessionpool create
A paranccsal hozzon létre egy Node.js munkamenetkészletet, amely tetszőleges JavaScript-kód végrehajtásáért felelős.
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
Szerepkör-hozzárendelések beállítása kódvégrehajtási API-khoz
A munkamenetkészlet API-jával való interakcióhoz egy identitást kell használnia a Azure ContainerApps Session Executor
szerepkör-hozzárendeléssel. Ebben az oktatóanyagban a Microsoft Entra ID felhasználói identitásával hívja meg az API-t.
A felhasználói objektum azonosítóját kérdezheti le.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
Rendelje hozzá a szerepkört az identitásához.
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"
Tulajdonosi jogkivonat lekérése
A munkamenetkészlet API-jának közvetlen elérése érdekében hozzon létre egy hozzáférési jogkivonatot, amely szerepel a Authorization
kérések fejlécében. Győződjön meg arról, hogy a jogkivonat tartalmaz egy célközönségi (aud
) jogcímet az értékkel https://dynamicsessions.io
. További információ: hitelesítési és engedélyezési szabályok.
Hozzáférési jogkivonat lekérése.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
Hozzon létre egy változót a kérelem fejlécének tárolásához.
AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"
Ez a fejléc kíséri az alkalmazás végpontjára irányuló kérést.
A munkamenetkészlet felügyeleti végpontjának lekérése
Az alkalmazás végpontjának visszaadásához használja az alábbi parancsot.
SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)
Ez a végpont az a hely, ahol API-hívásokat indít a kód hasznos adatainak a kódértelmező munkamenetben való végrehajtásához.
Kód végrehajtása a munkamenetben
Most, hogy rendelkezik egy tulajdonosi jogkivonattal a biztonsági környezet és a munkamenetkészlet végpontjának létrehozásához, elküldhet egy kérést az alkalmazásnak a kódblokk végrehajtásához.
Futtassa a következő parancsot a JavaScript-kód futtatásához a "hello world" naplózásához az alkalmazásban.
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\")"
}
}'
Az alábbi példához hasonló kimenetnek kell megjelennie.
{
"properties": {
"status": "Success",
"stdout": "hello-world\n",
"stderr": "",
"executionResult": "",
"executionTimeInMilliseconds": 5
}
}
További kódértelmező API-mintákat találhat a GitHubon.
Az erőforrások eltávolítása
Az oktatóanyagban létrehozott erőforrások hatással vannak az Azure-számlára. Ha nem fogja hosszú távon használni ezeket a szolgáltatásokat, futtassa a következő parancsot az oktatóanyagban létrehozott összes eltávolításához.
az group delete \
--resource-group $RESOURCE_GROUP