Sdílet prostřednictvím


Nasazení webové aplikace Go do Azure Container Apps

V tomto rychlém startu se naučíte nasadit kontejnerizovanou webovou aplikaci Go do Azure Container Apps.

Azure Container Apps umožňuje spouštět kód aplikace zabalený v jakémkoli kontejneru, aniž byste museli spravovat složitou cloudovou infrastrukturu nebo komplexní orchestrátory kontejnerů a nemusíte se starat o modul runtime nebo programovací model. Mezi běžné použití Azure Container Apps patří: Nasazování koncových bodů rozhraní API, hostování aplikací pro zpracování na pozadí, zpracování zpracování řízeného událostmi a spouštění mikroslužeb.

Tento kurz vás provede sestavením image Dockeru, nasazením této image do služby Azure Container Registry a nasazením webové aplikace Go do Azure Container Apps.

Požadavky

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Nastavení

Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte příkaz az login a podle pokynů dokončete proces ověřování.

az login

Pokud chcete zajistit, že používáte nejnovější verzi rozhraní příkazového řádku, spusťte příkaz az upgrade .

az upgrade

Dále nainstalujte nebo aktualizujte rozšíření Azure Container Apps pro rozhraní příkazového řádku.

Pokud se při spouštění az containerapp příkazů v Azure CLI zobrazí chyby týkající se chybějících parametrů, ujistěte se, že máte nainstalovanou nejnovější verzi rozšíření Azure Container Apps.

az extension add --name containerapp --upgrade

Poznámka:

Od května 2024 už rozšíření Azure CLI ve výchozím nastavení nepovolují funkce ve verzi Preview. Pokud chcete získat přístup k funkcím Container Apps ve verzi Preview, nainstalujte rozšíření Container Apps pomocí --allow-preview truenástroje .

az extension add --name containerapp --upgrade --allow-preview true

Teď, když je nainstalované aktuální rozšíření nebo modul, zaregistrujte obory Microsoft.App názvů a Microsoft.OperationalInsights obory názvů.

Poznámka:

Prostředky Azure Container Apps se migrovaly z Microsoft.Web oboru názvů do Microsoft.App oboru názvů. Další podrobnosti najdete v tématu Namespace migrace z webu Microsoft.Web na Microsoft.App v březnu 2022 .

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Stažení ukázkové aplikace

Pokud chcete postupovat podle tohoto kurzu, potřebujete k kontejnerizaci ukázkovou aplikaci. Ukázková webová aplikace Go je k dispozici v úložišti GitHubu msdocs-go-webapp-quickstart . Stáhněte nebo naklonujte ukázkovou aplikaci do místní pracovní stanice.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Vytvoření registru služby Azure Container Registry

Azure Container Registry umožňuje vytvářet, ukládat a spravovat image kontejnerů. Použijete ji k uložení image Dockeru, která obsahuje ukázkovou webovou aplikaci Go uvedenou v ukázkovém úložišti uvedeném výše.

Spuštěním následujících příkazů vytvořte Službu Azure Container Registry:

  1. Vytvořte skupinu prostředků Azure pomocí příkazu az group create.

    
    
    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Pomocí příkazu az acr create vytvořte službu Azure Container Registry.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic
    
  3. Přihlaste se k instanci kontejneru Azure pomocí příkazu az acr login .

    az acr login --name <azureContainerRegistryName>  
    

Nahraďte a <azureContainerRegistryName> nahraďte <resourceGroupName> odpovídajícími hodnotami. Název služby Azure Container Registry musí být globálně jedinečný.

Poznámka:

Pokud se při spuštění az acr login příkazu zobrazí chyba podobná následující, ujistěte se, že v systému běží docker deamon:

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

Sestavení a nasdílení image Dockeru

Po vytvoření služby Azure Container Registry sestavte a nasdílejte image Dockeru ukázkové webové aplikace Go.

Spusťte následující příkazy sestavení a nasdílení image do registru:

  1. Pomocí příkazu az acr show získejte informace o přihlašovacím serveru.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Sestavte image Dockeru místně.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Nasdílejte image Dockeru do služby Azure Container Registry.

    docker push <loginServer>/<imageName>:latest
    
  4. Pomocí příkazu az acr repository list ověřte, že se image úspěšně odeslala do služby Azure Container Registry.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Nahraďte loginServer, imageNamea azureContainerRegistryName odpovídajícími hodnotami. Název image je image Dockeru, která se odešle do služby Azure Container Registry a později se používá k nasazení do Azure Container Apps.

Teď, když máte k dispozici image ve službě Azure Container Registry, jste připraveni nasadit aplikaci Azure Container App a její prostředí.

Vytvoření prostředí Azure Container Apps

Služba Azure Container Apps nemá složitost orchestrátoru kontejnerů, ale přesto potřebuje nějaký způsob, jak vytvořit zabezpečené hranice, což je místo, kde přichází prostředí Azure Container Apps. Container Apps nasazené ve stejném prostředí sdílí stejnou virtuální síť a zapisuje protokoly do stejného pracovního prostoru služby Log Analytics. Před nasazením aplikace Azure Container App potřebujete prostředí, do které se má nasadit.

  • Spuštěním příkazu az containerapp env create vytvořte prostředí Azure Container Apps.

    az containerapp env create \
        --name <containerAppEnvName> \
        --resource-group <resourceGroupName> \
        --location "East US"
    

Nasazení do Azure Container Apps

V tomto okamžiku jste vytvořili Službu Azure Container Registry, vytvořili a odeslali do ní image Dockeru a vytvořili prostředí Azure Container Apps. Zbývá jen nasadit aplikaci.

Spuštěním příkazu az containerapp create nasaďte webovou aplikaci Go do Azure Container Apps.

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

Parametr --registry-identity system nakonfiguruje spravovanou identitu přiřazenou systémem v aplikaci kontejneru. Aplikace kontejneru používá tuto identitu místo uživatelského jména a hesla, což je méně bezpečné, k ověření v registru kontejneru. Příkaz také automaticky vytvoří AcrPull přiřazení role pro identitu, aby bylo možné vyžádat image z registru. Aby bylo možné používat spravované identity pro ověřování a autorizaci, musí být registr Azure Container Registry.

Ověření adresy URL webové aplikace

Spuštěním příkazu az containerapp show získejte plně kvalifikovaný název domény (plně kvalifikovaný název domény) příchozího přenosu dat webové aplikace.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

Potom spusťte příkaz curl pro plně kvalifikovaný název domény a potvrďte výstup, který odráží kód HTML webu.

curl "https://$APP_FQDN"

Vyčištění prostředků

Až budete s ukázkovou aplikací hotovi, můžete z Azure odebrat všechny prostředky aplikace. Tím se vyhnete průběžným poplatkům a nezachovají se vaše předplatné Azure přehledně. Odebráním skupiny prostředků se také odeberou všechny prostředky ve skupině prostředků a je nejrychlejší způsob, jak odebrat všechny prostředky Azure pro vaši aplikaci.

Spuštěním příkazu az group delete odstraňte skupinu prostředků a její prostředky.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Další kroky