Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az elosztott alkalmazás-futtatókörnyezet (Dapr) segít a fejlesztőknek rugalmas, megbízható mikroszolgáltatások létrehozásában. Ebben a gyorsútmutatóban megtudhatja, hogyan engedélyezheti a Dapr sidecarokat a mikroszolgáltatások konténeralkalmazásai mellett való futtatásra. A következőt fogja:
- Hozzon létre egy Container Apps-környezetet és egy Azure Blog Storage-állapottárolót a tárolóalkalmazásokhoz.
- Üzeneteket közzétevő Python-tárolóalkalmazás üzembe helyezése.
- Helyezzen üzembe egy Node.js tárolóalkalmazást, amely feliratkozik az üzenetekre, és egy állapottárolóban tárolja őket.
- Ellenőrizze a két mikroszolgáltatás közötti interakciót az Azure Portal használatával.
Ez a gyorsindító a nyílt forráskódú Dapr „Helló világ!” gyorsindítóban üzembe helyezett alkalmazásokat tükrözi.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot.
- Egy GitHub-fiók. Ha nincs fiókja, ingyenesen regisztrálhat egyet.
- Telepítse az Azure CLI-t.
- Telepítse Git.
Beállítás
Ha a parancssori felületről szeretne bejelentkezni az Azure-ba, futtassa a következő parancsot, és kövesse az utasításokat a hitelesítési folyamat befejezéséhez.
az login
A parancssori felület legújabb verziójának futtatásához futtassa a frissítési parancsot.
az upgrade
Ezután telepítse vagy frissítse az Azure Container Apps bővítményt a parancssori felülethez.
Ha hibaüzenetet kap a hiányzó paraméterekről, amikor parancsokat futtat az containerapp az Azure CLI-ben vagy parancsmagokat a Az.App PowerShell-modulból, győződjön meg arról, hogy telepítve van az Azure Container Apps bővítmény legújabb verziója.
az extension add --name containerapp --upgrade
Megjegyzés
2024 májusától kezdődően az Azure CLI-bővítmények alapértelmezés szerint nem engedélyezik az előzetes verziójú funkciókat. A Container Apps előzetes verziójú funkcióinak eléréséhez telepítse a Container Apps bővítményt a következővel --allow-preview true: .
az extension add --name containerapp --upgrade --allow-preview true
Az aktuális bővítmény vagy modul telepítése után regisztrálja a Microsoft.App és Microsoft.OperationalInsights névtereket.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Környezeti változók beállítása
Állítsa be a következő környezeti változókat. Cserélje le a <placeholders> karakterláncot a saját értékeivel.
RESOURCE_GROUP="<new-resource-group>"
LOCATION="<location>"
CONTAINERAPPS_ENVIRONMENT="<containerapps-environment>"
Azure-erőforráscsoport létrehozása
Hozzon létre egy erőforráscsoportot a tárolóalkalmazás üzembe helyezéséhez kapcsolódó szolgáltatások rendszerezéséhez.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION
Környezet létrehozása
Az Azure Container Apps környezete biztonságos határt hoz létre a tárolóalkalmazások egy csoportja körül. Az ugyanabban a környezetben üzembe helyezett Tárolóalkalmazások ugyanabban a virtuális hálózaton vannak üzembe helyezve, és naplókat írnak ugyanarra a Log Analytics-munkaterületre.
A környezet létrehozásához futtassa a következő parancsot:
az containerapp env create \
--name $CONTAINERAPPS_ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Állapottároló beállítása
Azure Blob Storage-fiók létrehozása
A környezet üzembe helyezésével helyezzen üzembe egy Azure Blob Storage-fiókot, amelyet a Node.js tárolóalkalmazás használ az adatok tárolására. A szolgáltatás üzembe helyezése előtt válasszon nevet a tárfióknak.
A tárfiókok nevének egyedinek kell lennie az Azure-ban, 3–24 karakter hosszúságúnak kell lennie, és csak számokat és kisbetűket kell tartalmaznia.
STORAGE_ACCOUNT_NAME="<storage-account-name>"
Az Azure Storage-fiók létrehozásához használja az alábbi parancsot.
az storage account create \
--name $STORAGE_ACCOUNT_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--sku Standard_RAGRS \
--kind StorageV2
Felhasználó által hozzárendelt identitás konfigurálása a csomópontalkalmazáshoz
Bár a Container Apps a felhasználó által hozzárendelt és a rendszer által hozzárendelt felügyelt identitást is támogatja, a felhasználó által hozzárendelt identitások hozzáférést biztosítanak a Dapr-kompatibilis Node.js alkalmazásnak a Blob Storage-fiókhoz való hozzáféréshez.
Hozzon létre egy felhasználó által hozzárendelt identitást.
az identity create --resource-group $RESOURCE_GROUP --name "nodeAppIdentity" --output jsonKérje le a
principalIdtulajdonságokat,idés tárolja változókban.PRINCIPAL_ID=$(az identity show -n "nodeAppIdentity" --resource-group $RESOURCE_GROUP --query principalId | tr -d \") IDENTITY_ID=$(az identity show -n "nodeAppIdentity" --resource-group $RESOURCE_GROUP --query id | tr -d \") CLIENT_ID=$(az identity show -n "nodeAppIdentity" --resource-group $RESOURCE_GROUP --query clientId | tr -d \")Kérje le az aktuális előfizetés előfizetés-azonosítóját.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)A felhasználó által hozzárendelt identitáshoz rendelje hozzá a
Storage Blob Data Contributorszerepkört.az role assignment create --assignee $PRINCIPAL_ID \ --role "Storage Blob Data Contributor" \ --scope "subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Storage/storageAccounts/$STORAGE_ACCOUNT_NAME"
Az állapottároló összetevő konfigurálása
Bár több lehetősége is van a külső erőforrások Dapr-en keresztüli hitelesítésére. Ez a példa egy Azure-alapú állapottárolót használ, így közvetlen hozzáférést biztosíthat a Node.js alkalmazásból a Blob Store-ba felügyelt identitás használatával.
Egy szövegszerkesztőben hozzon létre egy statestore.yaml nevű fájlt az előző lépésekből származó tulajdonságokkal. Cserélje le a
<placeholders>karakterláncot a saját értékeivel.# statestore.yaml for Azure Blob storage component componentType: state.azure.blobstorage version: v1 metadata: - name: accountName value: "<storage-account-name>" - name: containerName value: mycontainer - name: azureClientId value: "<managed-identity-client-ID>" scopes: - nodeappEz a fájl lehetővé teszi a Dapr-alkalmazás számára az állapottároló elérését.
Lépjen arra a könyvtárra, amelyben a yaml-fájlt tárolta, és futtassa a következő parancsot a Dapr-összetevő konfigurálásához a Container Apps-környezetben.
az containerapp env dapr-component set \ --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP \ --dapr-component-name statestore \ --yaml statestore.yaml
Az Node.js alkalmazás üzembe helyezése
az containerapp create \
--name nodeapp \
--resource-group $RESOURCE_GROUP \
--user-assigned $IDENTITY_ID \
--environment $CONTAINERAPPS_ENVIRONMENT \
--image dapriosamples/hello-k8s-node:latest \
--min-replicas 1 \
--max-replicas 1 \
--enable-dapr \
--dapr-app-id nodeapp \
--dapr-app-port 3000 \
--env-vars 'APP_PORT=3000'
Ha Azure Container Registryt használ, vegye fel a --registry-server <registry-name>.azurecr.io jelölőt a parancsba.
Alapértelmezés szerint a képfájl a Docker Hubról kerül letöltésre.
A Python-alkalmazás üzembe helyezése
az containerapp create \
--name pythonapp \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--image dapriosamples/hello-k8s-python:latest \
--min-replicas 1 \
--max-replicas 1 \
--enable-dapr \
--dapr-app-id pythonapp
Ha Azure Container Registryt használ, vegye fel a --registry-server <registry-name>.azurecr.io jelölőt a parancsba.
Az eredmények ellenőrzése
Az állapot sikeres megőrzésének megerősítése
Az Azure Storage-fiók adatainak megtekintésével ellenőrizheti, hogy a szolgáltatások megfelelően működnek-e.
Nyissa meg az Azure Portalt a böngészőben, és keresse meg a tárfiókot.
Az oldalsáv menüjében válassza az Adattárolók> lehetőséget.
Válassza ki a tárolóalkalmazást.
Ellenőrizze, hogy látható-e a tárolóban elnevezett
orderfájl.Válassza ki a fájlt.
Válassza a Szerkesztés lapot.
A Frissítés gombra kattintva megfigyelheti, hogyan frissülnek automatikusan az adatok.
Naplók megtekintése
A tárolóalkalmazásokból származó naplók a ContainerAppConsoleLogs_CL Log Analytics-munkaterület egyéni táblájában vannak tárolva. A naplókat az Azure Portalon vagy a parancssori felületen tekintheti meg. Előfordulhat, hogy a tábla kezdetben kis késéssel jelenik meg a munkaterületen.
A naplók megtekintéséhez használja a parancssort a következő CLI-paranccsal.
LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`
az monitor log-analytics query \
--workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
--analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'nodeapp' and (Log_s contains 'persisted' or Log_s contains 'order') | project ContainerAppName_s, Log_s, TimeGenerated | sort by TimeGenerated | take 5" \
--out table
Az alábbi kimenet bemutatja a parancssori felületi parancstól elvárható válasz típusát.
ContainerAppName_s Log_s TableName TimeGenerated
-------------------- ------------------------------- ------------- ------------------------
nodeapp Got a new order! Order ID: 61 PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Got a new order! Order ID: 62 PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Got a new order! Order ID: 63 PrimaryResult 2021-10-22T22:45:44.618Z
Erőforrások takarítása
Mivel a pythonapp folyamatosan hívásokat kezdeményez a nodeapp felé olyan üzenetekkel, amelyek az Ön által konfigurált állapottárolóban rögzítődnek, fontos elvégezni ezeket a tisztítási lépéseket a további számlázható műveletek elkerülése érdekében.
Ha törölni szeretné az útmutató részeként létrehozott erőforrásokat, futtassa a következő parancsot.
Figyelemfelhívás
Ez a parancs törli a megadott erőforráscsoportot és a benne lévő összes erőforrást. Ha az oktatóanyag hatókörén kívüli erőforrások szerepelnek a megadott erőforráscsoportban, akkor azok is törlődnek.
az group delete --resource-group $RESOURCE_GROUP
Tipp.
Problémákat tapasztal? Tudassa velünk a GitHubon, ha megnyit egy hibát az Azure Container Apps adattárában.