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.
Ebben a rövid útmutatóban megtudhatja, hogyan helyezhet üzembe egy tárolóalapú Go-webalkalmazást az Azure Container Appsben.
Az Azure Container Apps segítségével bármilyen tárolóba csomagolt alkalmazáskódot futtathat bonyolult felhőinfrastruktúra vagy összetett tárolóvezénylők kezelése nélkül. Emellett nem kell aggódnia a futtatókörnyezet vagy a programozási modell miatt. Az Azure Container Apps gyakori felhasználási területei a következők: API-végpontok üzembe helyezése, háttérfeldolgozó alkalmazások üzemeltetése, eseményvezérelt feldolgozás kezelése és mikroszolgáltatások futtatása.
Ebben az oktatóanyagban végigvezethet egy Docker-rendszerkép létrehozásán, a lemezkép Azure Container Registryben való üzembe helyezésén és egy Go-webalkalmazás üzembe helyezésén az Azure Container Appsben.
Előfeltételek
- Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
- Telepítés: 1.18-es vagy újabb verzió
- Docker Desktop
Beállítás
Ha a parancssori felületről szeretne bejelentkezni az Azure-ba, futtassa az az login 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 az az upgrade 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, 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
Feljegyzé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.ContainerRegistry a Microsoft.OperationalInsightsnévtereket.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.OperationalInsights
Feljegyzés
Az Azure Container Apps-erőforrások a Microsoft.Web névtérből a Microsoft.App névtérbe migrálva. További információ: A Névtér migrálása a Microsoft.Web-ből Microsoft.App 2022 márciusában.
A mintaalkalmazás letöltése
Az oktatóanyag követéséhez szükség van egy mintaalkalmazásra a tárolók tárolásához. Az msdocs-go-webapp-quickstart GitHub-adattár egy Go-minta webalkalmazást biztosít. Töltse le vagy klónozza a mintaalkalmazást a helyi munkaállomásra.
git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git
cd msdocs-go-webapp-quickstart
Azure Container Registry-adatbázis létrehozása
Az Azure Container Registry lehetővé teszi tárolólemezképek készítését, tárolását és kezelését. Ezzel tárolhatja a Docker-rendszerképet, amely a korábban említett mintaadattárban található Go-webalkalmazást tartalmazza.
Az Azure Container Registry létrehozásához futtassa a következő parancsokat:
Állítsa be a környezeti változókat a létrehozni kívánt erőforrásokhoz. Cserélje le a zárójelben lévő helyőrző szöveget a megfelelő értékekre. Az Azure Container Registry nevének globálisan egyedinek kell lennie.
RESOURCE_GROUP_NAME="<resourceGroupName>" # Name of the Azure resource group to create LOCATION="<location>" # Azure region (For example, "eastus", "westus2") ACR_NAME="<azureContainerRegistryName>" # Globally unique name for Azure Container RegistryA környezeti változók beállítására szolgáló példaparancsok a Bash-rendszerhéjhoz tartoznak. Ha másik shellt használ, ehhez igazodva módosítsa a parancsokat.
Hozzon létre egy Azure-erőforráscsoportot az az group create paranccsal.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATIONHozzon létre egy Azure Container Registryt az az acr create paranccsal.
az acr create \ --resource-group $RESOURCE_GROUP_NAME \ --name $ACR_NAME \ --sku basicJelentkezzen be az Azure-tárolópéldányba az az acr bejelentkezési paranccsal.
az acr login --name $ACR_NAMEFeljegyzés
Ha a parancs futtatásakor
az acr loginaz alábbi hibához hasonló hibaüzenet jelenik meg, győződjön meg arról, hogy a Docker-démon fut a rendszeren:You may want to use 'az acr login -n $ACR_NAME --expose-token' to get an access token, which doesn't require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR
A Docker-rendszerkép létrehozása és leküldése
Az Azure Container Registry létrehozása után hozza létre és küldje el a Docker-rendszerképet a Go-minta webalkalmazásról.
Futtassa az alábbi parancsokat a képfájl elkészítéséhez és a regisztrárba való feltöltéséhez.
Állítsa be a létrehozendő Docker-rendszerkép környezeti változóját. Cserélje le a zárójelben lévő helyőrző szöveget a megfelelő értékekre.
IMAGE_NAME="go-webapp" # Name for the Docker imageA környezeti változók beállítására szolgáló példaparancsok a Bash-rendszerhéjhoz tartoznak. Ha másik parancsértelmezőt használ, ennek megfelelően módosítsa a parancsokat.
Kérje le a bejelentkezési kiszolgáló adatait az az acr show paranccsal, és tárolja egy környezeti változóban.
LOGIN_SERVER=$(az acr show \ --name $ACR_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query loginServer \ --output tsv) echo "Login server: $LOGIN_SERVER"Hozza létre helyileg a Docker-rendszerképet.
docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .A Docker-rendszerkép leküldése az Azure Container Registrybe.
docker push $LOGIN_SERVER/$IMAGE_NAME:latestEllenőrizze, hogy a rendszerkép sikeresen le lett-e küldve az Azure Container Registrybe az az acr-adattár listaparancsával .
az acr repository list \ --name $ACR_NAME \ --output table
Most, hogy elérhető egy rendszerkép az Azure Container Registryben, készen áll az Azure Container App és környezetének üzembe helyezésére.
Azure Container Apps-környezet létrehozása
Az Azure Container Apps nem rendelkezik a tárolóvezénylő összetettségével, de még mindig szüksége van valamilyen módszerre a biztonságos határok létrehozásához. Ezt a képességet az Azure Container Apps-környezetek biztosítják. Az ugyanabban a környezetben üzembe helyezett Container Apps ugyanazt a virtuális hálózatot használja, és naplókat ír ugyanarra a Log Analytics-munkaterületre. Ahhoz, hogy üzembe helyezhesse az Azure Container Appot, szüksége van egy környezetre, amelybe üzembe kell helyeznie.
Állítsa be a környezeti változókat a létrehozni kívánt erőforrásokhoz. Cserélje le a zárójelben lévő helyőrző szöveget a megfelelő értékekre.
CONTAINER_APP_ENV="mygoappenv" # Name for the Container Apps environment CONTAINER_APP_NAME="mygoapp" # Name for your container appA környezeti változók beállítására szolgáló példaparancsok a Bash-rendszerhéjhoz tartoznak. Ha másik parancsértelmezőt használ, ennek megfelelően módosítsa a parancsokat.
Futtassa az az containerapp env create parancsot egy Azure Container Apps-környezet létrehozásához.
az containerapp env create \ --name $CONTAINER_APP_ENV \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION
Üzembe helyezés az Azure Container Appsben
Ezen a ponton a következő lépéseket hajtotta végre:
- Létrehozott egy Azure Container Registryt.
- Létrehozott és leküldött egy Docker-rendszerképet a beállításjegyzékbe.
- Azure Container Apps-környezet beállítása.
Az utolsó lépés az alkalmazás üzembe helyezése.
Futtassa az az containerapp create parancsot a Go webalkalmazás üzembe helyezéséhez az Azure Container Appsben.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--environment $CONTAINER_APP_ENV \
--image "$LOGIN_SERVER/$IMAGE_NAME:latest" \
--registry-server "$LOGIN_SERVER" \
--registry-identity system \
--target-port 8080 \
--ingress external
A --registry-identity system paraméter konfigurálja a rendszer által hozzárendelt felügyelt identitást a tárolóalkalmazásban. A tárolóalkalmazás ezt az identitást használja a felhasználónév és a jelszó helyett, amely kevésbé biztonságos a tárolóregisztrációs adatbázissal való hitelesítéshez. A parancs automatikusan létrehoz egy AcrPull szerepkört hozzárendelést az identitáshoz, amely lehetővé teszi a rendszerképek lekérését a beállításjegyzékből. A felügyelt identitások hitelesítéshez és engedélyezéshez való használatához a beállításjegyzéknek Azure Container Registry-adatbázisnak kell lennie.
A webalkalmazás URL-címének ellenőrzése
Futtassa az az containerapp show parancsot a webalkalmazás bejövő forgalmának teljes tartományneve (FQDN) lekéréséhez.
APP_FQDN=$(az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --query properties.configuration.ingress.fqdn \ --output tsv) echo "App URL: https://$APP_FQDN"Futtassa a curl parancsot a teljes tartománynévvel, és győződjön meg arról, hogy a kimenet a webhely HTML-jének megfelelő. Az URL-címet böngészőben is megnyithatja a webalkalmazással való interakcióhoz.
curl "https://$APP_FQDN""A parancs a webalkalmazás kezdőlapjának HTML-kódját adja vissza a következőhöz hasonlóan:
<!DOCTYPE html> <html> <head> <title>Hello Azure - Go Quickstart</title> <link rel="stylesheet" href="/assets/main.css"> <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> </head> <header> <h1>Welcome to Azure</h1> </header> <section> <img src="/assets/images/azure-icon.svg"> <form method="post"> <label for="form-label">Could you please tell me your name?</label><br> <input type="text" id="name" name="name" style="max-width: 256px;"><br> <button type="submit">Say Hello</button> </form> </section> </html>
Erőforrások tisztítása
Ha végzett a mintaalkalmazással, eltávolíthatja az alkalmazás összes erőforrását az Azure-ból. Ezzel elkerülheti a folyamatos díjakat, és az Azure-előfizetést rendetlenné teszi. Az erőforráscsoport eltávolítása az erőforráscsoport összes erőforrását is eltávolítja, és ez a leggyorsabb módja az alkalmazás összes Azure-erőforrásának eltávolításának.
Futtassa az az group delete parancsot az erőforráscsoport és erőforrásai törléséhez.
az group delete \
--name $RESOURCE_GROUP_NAME \
--no-wait