Go-webalkalmazás üzembe helyezése az Azure Container Appsben
Ebben a rövid útmutatóban megtudhatja, hogyan helyezhet üzembe egy tárolóalapú Go-webalkalmazást az Azure Container Appsben.
Azure Container Apps lehetővé teszi, hogy bonyolult felhőinfrastruktúra vagy összetett tárolóvezénylők kezelése nélkül bármilyen tárolóba csomagolt alkalmazáskódot hajtson végre. 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 névtereket és Microsoft.App
a Microsoft.OperationalInsights
névtereket.
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 részletekért tekintse meg Namespace 2022 márciusában a Microsoft.Web-ből Microsoft.App való migrálást.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
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. A Go-minta webalkalmazás az msdocs-go-webapp-quickstart GitHub-adattárban található. 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:
Hozzon létre egy Azure-erőforráscsoportot az az group create paranccsal.
az group create \ --name <resourceGroupName> \ --location eastus
Hozzon létre egy Azure Container Registryt az az acr create paranccsal.
az acr create \ --resource-group <resourceGroupName> \ --name <azureContainerRegistryName> \ --sku basic
Jelentkezzen be az Azure-tárolópéldányba az az acr bejelentkezési paranccsal.
az acr login --name <azureContainerRegistryName>
Cserélje le és <resourceGroupName>
cserélje le <azureContainerRegistryName>
a megfelelő értékeket. Az Azure Container Registry nevének globálisan egyedinek kell lennie.
Feljegyzés
Ha a az acr login
parancs futtatásakor az alábbihoz 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 <azureContainerRegistryName> --expose-token' to get an access token, which does not require Docker to be installed.
2024-09-12 17:25:25.127779 An error occurred: DOCKER_COMMAND_ERROR
A Docker-rendszerkép létrehozása és leküldése
Miután létrehozott egy Azure Container Registryt, hozza létre és küldje el a Docker-rendszerképet a Go-minta webalkalmazásról.
Futtassa a következő parancsok összeállítását, és küldje el a lemezképet a beállításjegyzékbe:
Kérje le a bejelentkezési kiszolgáló adatait az az acr show paranccsal.
az acr show \ --name <azureContainerRegistryName> \ --resource-group <resourceGroupName> \ --query loginServer \ --output tsv
Hozza létre helyileg a Docker-rendszerképet.
docker build -t <loginServer>/<imageName>:latest .
A Docker-rendszerkép leküldése az Azure Container Registrybe.
docker push <loginServer>/<imageName>:latest
Ellenő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 <azureContainerRegistryName> \ --output table
Cserélje le loginServer
a , imageName
és azureContainerRegistryName
a megfelelő értékeket. A rendszerkép neve az Azure Container Registrybe leküldött Docker-rendszerkép, amelyet később az Azure Container Appsben való üzembe helyezéshez használnak.
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ódon a biztonságos határok kialakítására, ahol az Azure Container Apps-környezetek bejönnek. 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.
Futtassa az az containerapp env create parancsot egy Azure Container Apps-környezet létrehozásához.
az containerapp env create \ --name <containerAppEnvName> \ --resource-group <resourceGroupName> \ --location "East US"
Üzembe helyezés az Azure Container Appsben
Ekkor létrehozott egy Azure Container Registryt, létrehozott és leküldött egy Docker-rendszerképet, és beállított egy Azure Container Apps-környezetet. Mindössze az alkalmazás üzembe helyezése marad.
Futtassa az az containerapp create parancsot a Go webalkalmazás üzembe helyezéséhez az Azure Container Appsben.
az containerapp create \
--name <containerAppName> \
--resource-group <resourceGroupName> \
--environment <containerAppEnvName> \
--image "<loginServer>/<imageName>:latest" \
--registry-server "<loginServer>" \
--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 kevésbé biztonságos felhasználónév/jelszó helyett 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 <containerAppName> \
--resource-group <resourceGroupName> \
--query properties.configuration.ingress.fqdn \
--output tsv)
Ezután futtassa a curl parancsot az FQDN-n, és ellenőrizze, hogy a kimenet a webhely HTML-jének megfelelő-e.
curl "https://$APP_FQDN"
Erőforrások törlése
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 <resourceGroupName> \
--no-wait