Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak sestavit a nasadit aplikaci do Azure Container Apps ze zdrojového kódu na svém počítači v preferovaném programovacím jazyce.
V tomto kurzu:
- Vytvořte jednoduchou webovou aplikaci.
- Vytvořte přidružený soubor Dockerfile pro vaši aplikaci.
- Vytvořte image z kompilovaného kódu a odešlete ji do registru kontejneru.
- Pomocí spravované identity můžete bezpečně přistupovat k registru kontejneru.
- Nasaďte kontejner do Azure Container Apps.
- Zobrazte si aplikaci v prohlížeči a ověřte nasazení.
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. 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 . |
| Azure CLI |
Nainstalujte Azure CLI nebo upgradujte na nejnovější verzi. Azure Developer CLI (azd příkazy) je k dispozici prostřednictvím Azure CLI. |
V závislosti na zvoleném jazyce možná budete muset nainstalovat také odpovídající modul runtime, sadu SDK a další závislosti.
Vytvoření místní aplikace
Následující kroky ukazují kód a závislosti potřebné k sestavení ukázkové aplikace pro nasazení do Azure Container Apps.
Poznámka:
Pokud chcete použít jiný jazyk než ty uvedené, zadejte do preferovaného modelu AI následující výzvu.
Před odesláním výzvy nahraďte <LANGUAGE> zvoleným jazykem.
Generate the simplest possible "hello world" web server in idiomatic <LANGUAGE>.
Make sure to include any dependencies required for the application to run locally and in production.
Vytvořte a spusťte zdrojový kód.
Vytvořte nový projekt jazyka C#.
dotnet new webapp --name MyAcaDemo --language C#Přejděte do složky MyAcaDemo .
cd MyAcaDemoOtevřete
Program.csv editoru kódu a nahraďte obsah následujícím kódem.public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); webBuilder.UseUrls("http://*:8080"); }); }ProgramImplementace třídy s tímto kódem vytvoří základ webové aplikace. Dále vytvořte třídu odpovědnou za vrácení webové stránky jako odpovědi.Ve stejné složce vytvořte nový soubor s názvem
Startup.csa zadejte následující kód.public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); }); }); } }Když se teď ve webové aplikaci vytvoří požadavek, vrátí se text "Hello World!". Pokud chcete ověřit, že váš kód běží správně na místním počítači, sestavte projekt v konfiguraci vydané verze.
dotnet build -c ReleasePak spusťte aplikaci a ověřte, že je váš kód implementovaný správně.
dotnet run --configuration ReleaseJakmile ověříte, že aplikace funguje podle očekávání, můžete zastavit místní server a přejít k vytvoření souboru Dockerfile, abyste mohli aplikaci nasadit do Container Apps.
Ve složce MyAcaDemo vytvořte soubor s názvem
Dockerfilea přidejte následující obsah.FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY . . RUN dotnet publish -c Release -o /app/publish FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final WORKDIR /app COPY --from=build /app/publish . EXPOSE 8080 ENTRYPOINT ["dotnet", "MyAcaDemo.dll"]Teď, když máte kód a soubor Dockerfile připravený, můžete aplikaci nasadit do Azure Container Apps.
Vytvoření zdrojů Azure
Přihlaste se k Azure z rozhraní příkazového řádku pomocí následujícího příkazu. Pokud chcete dokončit proces ověřování, nezapomeňte postupovat podle všech výzev.
az loginNainstalujte nebo aktualizujte rozšíření Azure Container Apps pro Azure CLI.
az extension add --name containerapp --upgradePoznámka:
Pokud se při spouštění
az containerapppříkazů 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.Teď, když je nastavení Azure CLI hotové, můžete definovat sadu proměnných prostředí.
Před spuštěním následujícího příkazu zkontrolujte zadané hodnoty.
Umístění je nakonfigurované jako USA – střed, ale pokud chcete, můžete přejít na nejbližší umístění.
LOCATION="CentralUS" RESOURCE_GROUP="my-demo-group" IDENTITY_NAME="my-demo-identity" ENVIRONMENT="my-demo-environment" REGISTRY_NAME="mydemoregistry$(openssl rand -hex 4)" CONTAINER_APP_NAME="my-demo-app"Příkaz
mydemoregistry$(openssl rand -hex 4)vygeneruje náhodný řetězec, který se použije jako název registru kontejneru. Názvy registru musí být globálně jedinečné, takže tento řetězec pomáhá zajistit úspěšné spuštění příkazů.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 \ --output noneVytvořte spravovanou identitu přiřazenou uživatelem a získejte její ID pomocí následujících příkazů.
Nejprve vytvořte spravovanou identitu.
az identity create \ --name $IDENTITY_NAME \ --resource-group $RESOURCE_GROUP \ --output noneTeď nastavte identifikátor identity na proměnnou pro pozdější použití.
IDENTITY_ID=$(az identity show \ --name $IDENTITY_NAME \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Vytvořte prostředí Container Apps pro hostování aplikace pomocí následujícího příkazu.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --mi-user-assigned $IDENTITY_ID \ --output noneVe skupině prostředků vytvořte instanci služby Azure Container Registry (ACR). Registr ukládá image kontejneru.
az acr create \ --resource-group $RESOURCE_GROUP \ --name $REGISTRY_NAME \ --sku Basic \ --output nonePomocí následujícího příkazu přiřaďte spravovanou identitu přiřazenou uživatelem k instanci registru kontejneru.
az acr identity assign \ --identities $IDENTITY_ID \ --name $REGISTRY_NAME \ --resource-group $RESOURCE_GROUP \ --output none
Sestavení a nasdílení image do registru
Pomocí následujícího příkazu sestavte a nasdílejte image kontejneru do instance registru kontejneru.
az acr build \
-t $REGISTRY_NAME".azurecr.io/"$CONTAINER_APP_NAME":helloworld" \
-r $REGISTRY_NAME .
Tento příkaz použije značku helloworld na image kontejneru.
Vytvoření kontejnerové aplikace
Pomocí následujícího příkazu vytvořte aplikaci kontejneru.
az containerapp create \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $REGISTRY_NAME".azurecr.io/"$CONTAINER_APP_NAME":helloworld" \
--target-port 8080 \
--ingress external \
--user-assigned $IDENTITY_ID \
--registry-identity $IDENTITY_ID \
--registry-server $REGISTRY_NAME.azurecr.io \
--query properties.configuration.ingress.fqdn
Tento příkaz přidá acrPull roli do spravované identity přiřazené uživatelem, aby mohl načíst image z registru kontejneru.
Následující tabulka popisuje parametry používané tímto příkazem.
| Parametr | Hodnota | Popis |
|---|---|---|
name |
$CONTAINER_APP_NAME |
Název vaší aplikace kontejneru. |
resource-group |
$RESOURCE_GROUP |
Skupina prostředků, ve které je vaše aplikace kontejneru nasazená. |
environment |
$ENVIRONMENT |
Prostředí, ve kterém vaše aplikace kontejneru běží. |
image |
$REGISTRY_NAME".azurecr.io/"$CONTAINER_APP_NAME":helloworld" |
Image kontejneru, která se má nasadit, včetně názvu a značky registru. |
target-port |
8080 |
Odpovídá portu, na který vaše aplikace naslouchá žádostem. |
ingress |
external |
Zpřístupňuje vaše aplikace kontejneru z veřejného internetu. |
user-assigned |
$IDENTITY_ID |
Spravovaná identita přiřazená uživatelem pro vaši aplikaci kontejneru. |
registry-identity |
registry-identity |
Identita použitá pro přístup k registru kontejneru. |
registry-server |
$REGISTRY_NAME.azurecr.io |
Adresa serveru vašeho registru kontejneru. |
query |
properties.configuration.ingress.fqdn |
Filtruje výstup jenom na plně kvalifikovaný název domény (FQDN) aplikace. |
Po dokončení tohoto příkazu vrátí adresu URL nové webové aplikace.
Ověření nasazení
Zkopírujte adresu URL aplikace do webového prohlížeče. Jakmile se aplikace kontejneru spustí, vrátí hello World!.
Vzhledem k tomu, že k aplikaci přistupujete poprvé, může chvíli trvat, než aplikace vrátí odpověď.
Vyčištění prostředků
Pokud nebudete používat prostředky Azure vytvořené v tomto kurzu, můžete je odebrat jediným příkazem. Před spuštěním příkazu je v této sérii kurzů další krok, který ukazuje, jak provádět změny kódu a aktualizovat aplikaci v Azure.
Pokud jste hotovi a chcete odebrat všechny prostředky Azure vytvořené v tomto kurzu, odstraňte skupinu prostředků pomocí následujícího příkazu.
az group delete --name aca-demo
Další kroky
Dále pokračujte a zjistěte, jak aktualizovat aplikaci kontejneru, kterou jste vytvořili.