Öğretici: Azure Container Apps'te kod yorumlayıcı oturumunda JavaScript kodu çalıştırma (önizleme)
Bu öğreticide, HTTP API'sini kullanarak Azure Container Apps dinamik oturumlarında JavaScript kodu yürütme adımları gösterilmektedir.
Bu öğreticide şunlarız:
- Yeni kod yorumlayıcı oturumu oluşturma
- Oturum havuzunuz için uygun güvenlik bağlamını ayarlama
- Kapsayıcı uygulamasının çalışması için JavaScript kodu geçirme
Not
Azure Container Apps dinamik oturumlarındaki JavaScript kod yorumlayıcı özelliği şu anda önizleme aşamasındadır. Daha fazla bilgi için bkz . önizleme sınırlamaları.
Önkoşullar
Bu öğreticiye başlamadan önce aşağıdaki kaynaklara ihtiyacınız vardır.
Kaynak | Açıklama |
---|---|
Azure hesabı | Etkin aboneliği olan bir Azure hesabına ihtiyacınız vardır. Kuruluşunuz yoksa şimdi ücretsiz olarak bir tane oluşturabilirsiniz. |
Azure CLI | Azure CLI’yi yükleyin. |
Ayarlama
En son güncelleştirmelerle Azure CLI'yi hazırlayarak ve Azure'da oturum açarak başlayın.
Azure CLI'yi en son sürüme güncelleştirin.
az upgrade
Kaynak sağlayıcısını
Microsoft.App
kaydedin.az provider register --namespace Microsoft.App
Azure Container Apps CLI uzantısının en son sürümünü yükleyin.
az extension add \ --name containerapp \ --allow-preview true --upgrade
Azure'da oturum açın.
az login
Azure abonelik kimliğinizi sorgulayıp değeri bir değişken olarak ayarlayın.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
Bu yordamda kullanılan değişkenleri ayarlayın.
Aşağıdaki komutu çalıştırmadan önce, ile çevrelenen
<>
yer tutucuları kendi değerlerinizle değiştirdiğinizden emin olun.RESOURCE_GROUP=<RESOURCE_GROUP_NAME> SESSION_POOL_NAME=<SESSION_POOL_NAME> LOCATION="northcentralus"
Aşağıdaki adımlarda kaynakları oluşturmak için bu değişkenleri kullanırsınız.
Kaynak grubunu oluşturmak için kullanmak istediğiniz aboneliği ayarlama
az account set -s $SUBSCRIPTION_ID
Kaynak grubu oluşturun.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION
Kod yorumlayıcı oturum havuzu oluşturma
Komutunu kullanarak az containerapp sessionpool create
rastgele JavaScript kodu yürütmekle sorumlu olan bir Node.js oturum havuzu oluşturun.
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
Kod yürütme API'leri için rol atamalarını ayarlama
Oturum havuzunun API'siyle etkileşime geçmek için rol atamasıyla Azure ContainerApps Session Executor
bir kimlik kullanmanız gerekir. Bu öğreticide, API'yi çağırmak için Microsoft Entra Id kullanıcı kimliğinizi kullanacaksınız.
Kullanıcı nesne kimliğinizi sorgula.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
Rolü kimliğinize atayın.
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"
Taşıyıcı belirteci alma
Oturum havuzunun API'sine doğrudan erişim için, isteklerinizin üst bilgisine eklenecek Authorization
bir erişim belirteci oluşturun. Belirtecin değerine https://dynamicsessions.io
sahip bir hedef kitle (aud
) talebi içerdiğinden emin olun. Daha fazla bilgi için bkz . kimlik doğrulaması ve yetkilendirme kuralları.
Erişim belirteci alma.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
İstek üst bilgisini tutmak için bir değişken oluşturun.
AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"
Bu üst bilgi, uygulamanızın uç noktasına yaptığınız isteğe eşlik eder.
Oturum havuzu yönetim uç noktasını alma
Uygulamanın uç noktasını döndürmek için aşağıdaki komutu kullanın.
SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)
Bu uç nokta, kod yorumlayıcı oturumunda kod yükünüzü yürütmek için API çağrıları yaptığınız konumdur.
Oturumunuzda kod yürütme
Artık güvenlik bağlamını ve oturum havuzu uç noktasını oluşturmak için taşıyıcı belirteciniz olduğuna göre, kod bloğunuzu yürütmek için uygulamaya bir istek gönderebilirsiniz.
Uygulamanızda "hello world" günlüğünü günlüğe kaydetmek için JavaScript kodunu çalıştırmak için aşağıdaki komutu çalıştırın.
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\")"
}
}'
Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.
{
"properties": {
"status": "Success",
"stdout": "hello-world\n",
"stderr": "",
"executionResult": "",
"executionTimeInMilliseconds": 5
}
}
GitHub'da daha fazla kod yorumlayıcısı API örneği bulabilirsiniz.
Kaynakları temizleme
Bu öğreticide oluşturulan kaynakların Azure faturanız üzerinde etkisi vardır. Bu hizmetleri uzun süreli kullanmayacaksanız, bu öğreticide oluşturulan her şeyi kaldırmak için aşağıdaki komutu çalıştırın.
az group delete \
--resource-group $RESOURCE_GROUP