Kurz: Spuštění kódu JavaScriptu v relaci interpretu kódu v Azure Container Apps (Preview)
Tento kurz ukazuje, jak spouštět javascriptový kód v dynamických relacích Azure Container Apps pomocí rozhraní HTTP API.
V tomto kurzu:
- Vytvoření nové relace interpretu kódu
- Nastavení vhodného kontextu zabezpečení pro fond relací
- Předání kódu JavaScriptu pro spuštění aplikace kontejneru
Poznámka:
Funkce interpretu kódu JavaScriptu v dynamických relacích Azure Container Apps je aktuálně ve verzi Preview. Další informace najdete v tématu Omezení verze Preview.
Požadavky
Než začnete s tímto kurzem, budete potřebovat následující zdroje informací.
Resource | Popis |
---|---|
Účet Azure | Potřebujete účet Azure s aktivním předplatným. Pokud jej nemáte, můžete si jej zdarma vytvořit. |
Azure CLI | Nainstalujte rozhraní příkazového řádku Azure CLI. |
Nastavení
Začněte přípravou Azure CLI s nejnovějšími aktualizacemi a přihlášením k Azure.
Aktualizujte Azure CLI na nejnovější verzi.
az upgrade
Zaregistrujte
Microsoft.App
poskytovatele prostředků.az provider register --namespace Microsoft.App
Nainstalujte nejnovější verzi rozšíření Azure Container Apps CLI.
az extension add \ --name containerapp \ --allow-preview true --upgrade
Přihlaste se do Azure.
az login
Zadejte dotaz na ID předplatného Azure a nastavte hodnotu na proměnnou.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
Nastavte proměnné použité v tomto postupu.
Před spuštěním následujícího příkazu nezapomeňte zástupné symboly nahradit
<>
vlastními hodnotami.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION="northcentralus"
Tyto proměnné použijete k vytvoření prostředků v následujících krocích.
Nastavte předplatné, které chcete použít k vytvoření skupiny prostředků.
az account set -s $SUBSCRIPTION_ID
Vytvořte skupinu prostředků.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Vytvoření fondu relací interpreta kódu
az containerapp sessionpool create
Pomocí příkazu vytvořte fond relací Node.js, který je zodpovědný za spuštění libovolného kódu JavaScriptu.
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
Nastavení přiřazení rolí pro rozhraní API pro spouštění kódu
Pokud chcete pracovat s rozhraním API fondu relací, musíte použít identitu s přiřazením Azure ContainerApps Session Executor
role. V tomto kurzu použijete identitu uživatele Microsoft Entra ID k volání rozhraní API.
Zadejte dotaz na ID objektu uživatele.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
Přiřaďte roli k vaší identitě.
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"
Získání nosné tokeny
Pro přímý přístup k rozhraní API fondu relací vygenerujte přístupový token, který se zahrne do Authorization
hlavičky vašich požadavků. Ujistěte se, že token obsahuje deklaraci identity cílové skupiny (aud
) s hodnotou https://dynamicsessions.io
. Další informace najdete v tématu Ověřovací a autorizační pravidla.
Získejte přístupový token.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
Vytvořte proměnnou pro uložení hlavičky požadavku.
AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"
Tato hlavička doprovází požadavek, který provedete do koncového bodu vaší aplikace.
Získání koncového bodu správy fondu relací
Pomocí následujícího příkazu vraťte koncový bod aplikace.
SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)
Tento koncový bod je umístění, kde provádíte volání rozhraní API pro spuštění datové části kódu v relaci interpretu kódu.
Spuštění kódu v relaci
Teď, když máte nosný token pro vytvoření kontextu zabezpečení a koncový bod fondu relací, můžete odeslat žádost aplikaci, aby spustila váš blok kódu.
Spuštěním následujícího příkazu spusťte kód JavaScriptu pro protokolování "hello world" ve vaší aplikaci.
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\")"
}
}'
Měl by se zobrazit výstup podobný následujícímu příkladu.
{
"properties": {
"status": "Success",
"stdout": "hello-world\n",
"stderr": "",
"executionResult": "",
"executionTimeInMilliseconds": 5
}
}
Další ukázky rozhraní API interpretu kódu najdete na GitHubu.
Vyčištění prostředků
Prostředky vytvořené v tomto kurzu mají vliv na fakturu za Azure. Pokud tyto služby nebudete používat dlouhodobě, spuštěním následujícího příkazu odeberte vše vytvořené v tomto kurzu.
az group delete \
--resource-group $RESOURCE_GROUP