Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Ö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 Komut Satırı Arayüzü (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 upgradeKaynak sağlayıcısını
Microsoft.Appkaydedin.az provider register --namespace Microsoft.AppAzure Container Apps CLI uzantısının en son sürümünü yükleyin.
az extension add \ --name containerapp \ --allow-preview true --upgradeAzure'da oturum açın.
az loginAzure 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_IDKaynak 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 audsahip bir hedef kitle (https://dynamicsessions.io) 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