Zelfstudie: Uw app bouwen en implementeren in Azure Container Apps
In dit artikel wordt gedemonstreerd hoe u een microservice bouwt en implementeert in Azure Container Apps vanuit een bronopslagplaats met behulp van de programmeertaal van uw voorkeur.
Dit is de eerste zelfstudie in de reeks artikelen waarin u wordt begeleid bij het gebruik van kernmogelijkheden in Azure Container Apps. De eerste stap is het maken van een back-end web-API-service die een statische verzameling muziekalbums retourneert.
Notitie
U kunt deze app ook bouwen en implementeren met behulp van de az containerapp up door de instructies in de quickstart te volgen: Een app bouwen en implementeren in Azure Container Apps vanuit een opslagplaatsartikel . De az containerapp up
opdracht is een snelle en handige manier om uw app te bouwen en te implementeren in Azure Container Apps met één opdracht. Het biedt echter niet hetzelfde aanpassingsniveau voor uw container-app.
De volgende zelfstudie in de reeks bouwt en implementeert de front-endwebtoepassing in Azure Container Apps.
In de volgende schermopname ziet u de uitvoer van de album-API die in deze zelfstudie is geïmplementeerd.
Vereisten
U hebt het volgende nodig om dit project te voltooien:
Vereiste | Instructies |
---|---|
Azure-account | Als u nog geen account hebt, maakt u gratis een account. U hebt de machtiging Beheerder of Eigenaar van gebruikerstoegang voor het Azure-abonnement nodig om door te gaan. Zorg ervoor dat u de meest beperkende rol voor uw context gebruikt. Zie Azure-rollen toewijzen met behulp van de Azure-portal en Azure-rollen, Microsoft Entra-rollen en klassieke abonnementsbeheerdersrollenvoor meer informatie. |
GitHub-account | Meld u gratis aan. |
git | Git installeren |
Azure-CLI | Installeer de Azure CLI. |
Vereiste | Instructies |
---|---|
Azure-account | Als u nog geen account hebt, maakt u gratis een account. U hebt de machtiging Inzender of Eigenaar voor het Azure-abonnement nodig om door te gaan. Raadpleeg Azure-rollen toewijzen met behulp van Azure Portal voor meer informatie. |
GitHub-account | Meld u gratis aan. |
git | Git installeren |
Azure-CLI | Installeer de Azure CLI. |
Docker Desktop | Docker biedt installatieprogramma's die de Docker-omgeving configureren op macOS, Windows en Linux. Typ docker vanaf de opdrachtprompt of Docker wordt uitgevoerd. |
Instellingen
Als u zich wilt aanmelden bij Azure vanuit de CLI, voert u de volgende opdracht uit en volgt u de aanwijzingen om het verificatieproces te voltooien.
az login
Voer de upgradeopdracht uit om ervoor te zorgen dat u de nieuwste versie van de CLI uitvoert.
az upgrade
Installeer of werk vervolgens de Azure Container Apps-extensie voor de CLI bij.
Als u fouten ontvangt over ontbrekende parameters wanneer u opdrachten uitvoert az containerapp
in Azure CLI of cmdlets vanuit de Az.App
module in Azure PowerShell, moet u ervoor zorgen dat de nieuwste versie van de Azure Container Apps-extensie is geïnstalleerd.
az extension add --name containerapp --upgrade
Notitie
Vanaf mei 2024 schakelen Azure CLI-extensies standaard geen preview-functies meer in. Als u toegang wilt krijgen tot de preview-functies van Container Apps, installeert u de Container Apps-extensie met --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Nu de huidige extensie of module is geïnstalleerd, registreert u de Microsoft.App
en Microsoft.OperationalInsights
naamruimten.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Omgevingsvariabelen maken
Nu uw Azure CLI-installatie is voltooid, kunt u de omgevingsvariabelen definiëren die in dit artikel worden gebruikt.
Definieer de volgende variabelen in uw bash-shell.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Voordat u deze opdracht uitvoert, moet u deze vervangen door <YOUR_GITHUB_USERNAME>
uw GitHub-gebruikersnaam.
Definieer vervolgens een containerregisternaam die uniek voor u is.
ACR_NAME="acaalbums"$GITHUB_USERNAME
De GitHub-opslagplaats voorbereiden
Navigeer naar de opslagplaats voor uw voorkeurstaal en fork de opslagplaats.
Selecteer de knop Fork boven aan de api-opslagplaats van het album om de opslagplaats naar uw account te splitsen.
U kunt nu uw fork van de voorbeeldopslagplaats klonen.
Gebruik de volgende Git-opdracht om uw geforkte opslagplaats te klonen in de map code-naar-cloud :
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud
Wijzig vervolgens de map in de hoofdmap van de gekloonde opslagplaats.
cd code-to-cloud/src
Maak een Azure-resourcegroep
Maak een resourcegroep om de services te ordenen die betrekking hebben op de implementatie van uw container-app.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Een Azure Container Registry maken
Nadat de installatiekopie van de album-API-container is gemaakt, maakt u een Exemplaar van Azure Container Registry (ACR) in uw resourcegroep om deze op te slaan.
az acr create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $ACR_NAME \ --sku Basic
Uw containerregister moet azure Resource Manager-doelgroeptokens (ARM) toestaan voor verificatie om beheerde identiteit te kunnen gebruiken om installatiekopieën op te halen.
Gebruik de volgende opdracht om te controleren of ARM-tokens toegang hebben tot uw Azure Container Registry (ACR).
az acr config authentication-as-arm show --registry "$ACR_NAME"
Als ARM-tokens zijn toegestaan, voert de opdracht het volgende uit.
{ "status": "enabled" }
Als dit het
status
isdisabled
, staat u ARM-tokens toe met de volgende opdracht.az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
Een door de gebruiker toegewezen beheerde identiteit maken
Als u wilt voorkomen dat u beheerdersreferenties gebruikt, haalt u installatiekopieën op uit privéopslagplaatsen in Microsoft Azure Container Registry met behulp van beheerde identiteiten voor verificatie. Gebruik indien mogelijk een door de gebruiker toegewezen beheerde identiteit om installatiekopieën op te halen.
Maak een door de gebruiker toegewezen beheerde identiteit. Voordat u de volgende opdrachten uitvoert, kiest u een naam voor uw beheerde identiteit en vervangt u deze
\<PLACEHOLDER\>
door de naam.IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP
Haal de resource-id van de identiteit op.
IDENTITY_ID=$(az identity show \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Uw toepassing bouwen
Met ACR-taken kunt u de docker-installatiekopieën voor de album-API bouwen en pushen zonder Docker lokaal te installeren.
De container bouwen met ACR
Voer de volgende opdracht uit om het build- en pushproces van de installatiekopieën te starten met behulp van ACR. De .
aan het einde van de opdracht vertegenwoordigt de docker-buildcontext, wat betekent dat deze opdracht moet worden uitgevoerd in de src-map waar het Dockerfile zich bevindt.
az acr build --registry $ACR_NAME --image $API_NAME .
De uitvoer van de az acr build
opdracht toont de voortgang van de upload van de broncode naar Azure en de details van de docker build
en docker push
bewerkingen.
Uw toepassing bouwen
De volgende stappen laten zien hoe u uw containerinstallatiekopieën lokaal bouwt met behulp van Docker en de installatiekopieën naar het nieuwe containerregister pusht.
De container bouwen met Docker
Met de volgende opdracht wordt een containerinstallatiekopieën voor de album-API gebouwd en gelabeld met de volledig gekwalificeerde naam van de ACR-aanmeldingsserver. De .
aan het einde van de opdracht vertegenwoordigt de docker-buildcontext, wat betekent dat deze opdracht moet worden uitgevoerd in de src-map waar het Dockerfile zich bevindt.
docker build --tag $ACR_NAME.azurecr.io/$API_NAME .
De installatiekopieën naar uw containerregister pushen
Meld u eerst aan bij uw Azure Container Registry.
az acr login --name $ACR_NAME
Push nu de installatiekopieën naar het register.
docker push $ACR_NAME.azurecr.io/$API_NAME
Een Container Apps-omgeving maken
De Azure Container Apps-omgeving fungeert als een veilige grens rond een groep container-apps.
Maak de Container Apps-omgeving met behulp van de volgende opdracht.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Uw installatiekopieën implementeren in een container-app
Nu u een omgeving hebt gemaakt, kunt u uw container-app maken en implementeren met de az containerapp create
opdracht.
Maak en implementeer uw container-app met de volgende opdracht.
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
Door deze instelling in te
external
stellen--ingress
, is uw container-app toegankelijk vanaf het openbare internet.De
target-port
waarde is ingesteld op8080
overeenkomen met de poort waarnaar de container luistert voor aanvragen.Zonder een
query
eigenschap retourneert de aanroep om een JSON-antwoord teaz containerapp create
retourneren dat een uitgebreide set details over de toepassing bevat. Als u een queryparameter toevoegt, wordt de uitvoer gefilterd op alleen de FQDN (Fully Qualified Domain Name) van de app.Met deze opdracht wordt de rol toegevoegd aan uw door de
acrPull
gebruiker toegewezen beheerde identiteit, zodat deze installatiekopieën uit uw containerregister kan ophalen.
Implementatie verifiëren
Kopieer de FQDN naar een webbrowser. Navigeer vanuit uw webbrowser naar het /albums
eindpunt van de FQDN.
Resources opschonen
Als u niet verdergaat met de zelfstudie Communicatie tussen microservices , kunt u de Azure-resources verwijderen die tijdens deze quickstart zijn gemaakt. Voer de volgende opdracht uit om de resourcegroep te verwijderen, samen met alle resources die in deze quickstart zijn gemaakt.
az group delete --name $RESOURCE_GROUP
Tip
Ondervindt u problemen? Laat het ons weten op GitHub door een probleem te openen in de Azure Container Apps-opslagplaats.
Volgende stappen
Deze quickstart is het beginpunt voor een reeks progressieve zelfstudies die de verschillende functies in Azure Container Apps laten zien. Ga verder met het inschakelen van communicatie vanuit een webfront-end die de API aanroept die u in dit artikel hebt geïmplementeerd.