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.

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.

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:

  1. Á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 Registry
    

    A 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.

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

    az group create \
        --name $RESOURCE_GROUP_NAME \
        --location $LOCATION
    
  3. Hozzon létre egy Azure Container Registryt az az acr create paranccsal.

    az acr create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $ACR_NAME \
        --sku basic
    
  4. Jelentkezzen be az Azure-tárolópéldányba az az acr bejelentkezési paranccsal.

    az acr login --name $ACR_NAME
    

    Feljegyzés

    Ha a parancs futtatásakor az acr login az 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.

  1. Á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 image
    

    A 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.

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

    docker build -t $LOGIN_SERVER/$IMAGE_NAME:latest .
    
  4. A Docker-rendszerkép leküldése az Azure Container Registrybe.

    docker push $LOGIN_SERVER/$IMAGE_NAME:latest
    
  5. 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 $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.

  1. Á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 app
    

    A 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.

  2. 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

  1. 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"
    
  2. 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

Következő lépések