Megosztás a következőn keresztül:


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.

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:

  1. Hozzon létre egy Azure-erőforráscsoportot az az group create paranccsal.

    
    
    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Hozzon létre egy Azure Container Registryt az az acr create paranccsal.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic
    
  3. 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:

  1. 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  
    
  2. Hozza létre helyileg a Docker-rendszerképet.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. A Docker-rendszerkép leküldése az Azure Container Registrybe.

    docker push <loginServer>/<imageName>:latest
    
  4. 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 loginServera , 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

Következő lépések