Sdílet prostřednictvím


Kurz: Sestavení a nasazení aplikace do Azure Container Apps

Tento článek ukazuje, jak vytvořit a nasadit mikroslužbu do Azure Container Apps ze zdrojového úložiště pomocí preferovaného programovacího jazyka.

Toto je první kurz v sérii článků, které vás provedou používáním základních funkcí v Azure Container Apps. Prvním krokem je vytvoření back-endové služby webového rozhraní API, která vrací statickou kolekci hudebních alb.

Poznámka:

Tuto aplikaci můžete také sestavit a nasadit pomocí příkazu az containerapp up podle pokynů v rychlém startu : Sestavení a nasazení aplikace do Azure Container Apps z článku o úložišti . Tento az containerapp up příkaz představuje rychlý a pohodlný způsob, jak pomocí jediného příkazu sestavit a nasadit aplikaci do Azure Container Apps. Neposkytuje ale stejnou úroveň přizpůsobení pro vaši aplikaci kontejneru.

Další kurz série sestaví a nasadí front-endovou webovou aplikaci do Azure Container Apps.

Následující snímek obrazovky ukazuje výstup z rozhraní API alba nasazeného v tomto kurzu.

Snímek obrazovky s odpovědí z koncového bodu rozhraní API alb

Požadavky

K dokončení tohoto projektu potřebujete následující položky:

Požadavek Pokyny
Účet Azure Pokud ho nemáte, vytvořte si účet zdarma. Abyste mohli pokračovat, potřebujete oprávnění správce uživatelských přístupů nebo vlastníka předplatného Azure. Ujistěte se, že pro váš kontext používáte nejvíce omezující roli.

Podrobnosti najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal a rolí Azure, rolí Microsoft Entra a klasických rolísprávce předplatného.
Účet GitHubu Zaregistrujte se zdarma.
git Instalace Gitu
Azure CLI Nainstalujte rozhraní příkazového řádku Azure CLI.
Požadavek Pokyny
Účet Azure Pokud ho nemáte, vytvořte si účet zdarma. K pokračování potřebujete oprávnění přispěvatele nebo vlastníka předplatného Azure. Podrobnosti najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal .
Účet GitHubu Zaregistrujte se zdarma.
git Instalace Gitu
Azure CLI Nainstalujte rozhraní příkazového řádku Azure CLI.
Docker Desktop Docker poskytuje instalační programy, které konfigurují prostředí Dockeru v systémech macOS, Windows a Linux.

Na příkazovém řádku zadejte docker , abyste měli jistotu, že je Docker spuštěný.

Nastavení

Pokud se chcete přihlásit k Azure z rozhraní příkazového řádku, spusťte následující příkaz 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 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 nebo rutinách Az.App z modulu v Azure PowerShellu 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ů.

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

Vytvoření proměnných prostředí

Po dokončení nastavení Azure CLI můžete definovat proměnné prostředí, které se používají v tomto článku.

Definujte následující proměnné v prostředí Bash.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

Před spuštěním tohoto příkazu nezapomeňte nahradit <YOUR_GITHUB_USERNAME> uživatelské jméno GitHubu.

Dále definujte název registru kontejneru, který je pro vás jedinečný.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Příprava úložiště GitHub

Přejděte do úložiště pro preferovaný jazyk a rozvětvujte úložiště.

Výběrem tlačítka Fork v horní části úložiště rozhraní API alba rozvětvte úložiště do svého účtu.

Teď můžete naklonovat fork ukázkového úložiště.

Pomocí následujícího příkazu Git naklonujte forkované úložiště do složky code-to-cloud :

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

Dále změňte adresář na kořen klonovaného úložiště.

cd code-to-cloud/src

Vytvoření skupiny prostředků Azure

Vytvořte skupinu prostředků pro uspořádání služeb souvisejících s nasazením aplikace kontejneru.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Vytvoření registru služby Azure Container Registry

  1. Po vytvoření image kontejneru rozhraní API alba vytvořte instanci služby Azure Container Registry (ACR) ve skupině prostředků, do které ji uložíte.

    az acr create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --name $ACR_NAME \
        --sku Basic
    
  2. Aby bylo možné použít spravovanou identitu k načtení imagí, musí váš registr kontejneru povolit tokeny cílové skupiny Azure Resource Manageru (ARM).

    Pomocí následujícího příkazu zkontrolujte, jestli mají tokeny ARM povolený přístup ke službě Azure Container Registry (ACR).

    az acr config authentication-as-arm show --registry "$ACR_NAME"
    

    Pokud jsou povoleny tokeny ARM, příkaz vypíše následující výstup.

    {
      "status": "enabled"
    }
    

    status Pokud anodisabled, povolte tokeny ARM pomocí následujícího příkazu.

    az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
    

Vytvoření spravované identity přiřazené uživatelem

Abyste se vyhnuli používání přihlašovacích údajů pro správu, načítejte image z privátních úložišť ve službě Microsoft Azure Container Registry pomocí spravovaných identit pro ověřování. Pokud je to možné, použijte spravovanou identitu přiřazenou uživatelem k načtení imagí.

  1. Vytvořte spravovanou identitu přiřazenou uživatelem. Než spustíte následující příkazy, zvolte název vaší spravované identity a nahraďte ho \<PLACEHOLDER\> názvem.

    IDENTITY="<YOUR_IDENTITY_NAME>"
    
    az identity create \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP
    
  2. Získejte ID prostředku identity.

    IDENTITY_ID=$(az identity show \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    

Sestavení aplikace

Pomocí úloh ACR můžete sestavit a odeslat image Dockeru pro rozhraní API alba bez místní instalace Dockeru.

Sestavení kontejneru pomocí ACR

Spuštěním následujícího příkazu zahajte proces sestavení a nabízení image pomocí ACR. Na . konci příkazu představuje kontext sestavení Dockeru, což znamená, že tento příkaz by se měl spustit ve složce src , kde se nachází soubor Dockerfile.

az acr build --registry $ACR_NAME --image $API_NAME .

Výstup z az acr build příkazu ukazuje průběh nahrávání zdrojového kódu do Azure a podrobnosti o docker build operacích a docker push operacích.

Sestavení aplikace

Následující kroky ukazují, jak sestavit image kontejneru místně pomocí Dockeru a odeslat image do nového registru kontejneru.

Sestavení kontejneru pomocí Dockeru

Následující příkaz vytvoří image kontejneru pro rozhraní API alba a označí ji plně kvalifikovaným názvem přihlašovacího serveru ACR. Na . konci příkazu představuje kontext sestavení Dockeru, což znamená, že tento příkaz by se měl spustit ve složce src , kde se nachází soubor Dockerfile.

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

Nahrání image do registru kontejneru

Nejprve se přihlaste ke službě Azure Container Registry.

az acr login --name $ACR_NAME

Teď nasdílejte image do registru.

docker push $ACR_NAME.azurecr.io/$API_NAME

Vytvoření prostředí Container Apps

Prostředí Azure Container Apps funguje jako zabezpečená hranice kolem skupiny kontejnerových aplikací.

Pomocí následujícího příkazu vytvořte prostředí Container Apps.

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Nasazení image do aplikace typu kontejner

Teď, když máte vytvořené prostředí, můžete pomocí příkazu vytvořit a nasadit aplikaci kontejneru az containerapp create .

Pomocí následujícího příkazu vytvořte a nasaďte aplikaci kontejneru.

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 8080 \
  --ingress external \
  --registry-server $ACR_NAME.azurecr.io \
  --user-assigned "$IDENTITY_ID" \
  --registry-identity "$IDENTITY_ID" \
  --query properties.configuration.ingress.fqdn
  • Nastavením na external, --ingress vaše aplikace kontejneru je přístupná z veřejného internetu.

  • Nastaví target-port se tak, aby 8080 odpovídal portu, na který kontejner naslouchá žádostem.

  • query Bez vlastnosti volání vrátí az containerapp create odpověď JSON, která obsahuje bohatou sadu podrobností o aplikaci. Přidání parametru dotazu filtruje výstup jenom na plně kvalifikovaný název domény (FQDN) aplikace.

  • Tento příkaz přidá acrPull roli do spravované identity přiřazené uživatelem, aby mohl načíst image z registru kontejneru.

Ověření nasazení

Zkopírujte plně kvalifikovaný název domény do webového prohlížeče. Ve webovém prohlížeči přejděte ke koncovému /albums bodu plně kvalifikovaného názvu domény.

Snímek obrazovky s odpovědí z koncového bodu rozhraní API alb

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

Pokud nebudete pokračovat v komunikaci mezi mikroslužbami kurz, můžete odebrat prostředky Azure vytvořené během tohoto rychlého startu. Spuštěním následujícího příkazu odstraňte skupinu prostředků spolu se všemi prostředky vytvořenými v tomto rychlém startu.

az group delete --name $RESOURCE_GROUP

Tip

Máte problémy? Dejte nám vědět na GitHubu otevřením problému v úložišti Azure Container Apps.

Další kroky

Tento rychlý start je vstupním bodem pro sadu progresivních kurzů, které představují různé funkce v Azure Container Apps. Pokračujte a zjistěte, jak povolit komunikaci z webového front-endu, který volá rozhraní API, které jste nasadili v tomto článku.