Delen via


Azure Container Apps implementeren met de opdracht az containerapp up

De az containerapp up opdracht (of up) is de snelste manier om een app in Azure Container Apps te implementeren vanuit een bestaande image, lokale broncode of een GitHub-opslagplaats. Wanneer u deze enkele opdracht gebruikt, kunt u uw container-app binnen enkele minuten laten uitvoeren.

Met de opdracht kunt u een containerimage bouwen en pushen naar Azure Container Registry wanneer u lokale broncode of een GitHub-opslagplaats opgeeft. Als u vanuit een GitHub-opslagplaats werkt, maakt de opdracht een GitHub Actions-werkstroom die automatisch een nieuwe containerafbeelding bouwt en pusht wanneer u wijzigingen commit naar uw GitHub-opslagplaats.

In dit artikel leest u hoe u het commando gebruikt om een container-app te implementeren vanuit een bestaande image, lokale broncode en een GitHub-repository.

Vereisten

Vereiste Instructies
Een Azure-account Als u nog geen account hebt, maakt u gratis een account. Uw Azure-abonnement moet de rol Inzender of Eigenaar hebben. Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde informatie.
De Azure CLI Installeer de Azure CLI.
Een GitHub-account Als u een afbeelding wilt gebruiken in een GitHub-repository, meld u zich aan voor een gratis GitHub-account.
Lokale broncode Als u een afbeelding wilt maken op basis van lokale broncode, plaatst u uw code in een lokale map.
Een bestaande afbeelding Als u een bestaande afbeelding wilt gebruiken, noteert u de registerserver, de naam van de afbeelding en de tag. Als u een privéregister gebruikt, moet u ook uw referenties noteren.

Bestaande resources gebruiken

Met de up opdracht kunt u resources maken of bestaande resources gebruiken, waaronder:

  • Een resourcegroep.
  • Containerregister.
  • Een Container Apps-omgeving en Log Analytics-werkruimte.
  • Uw container-app.

Als u de Container Apps-omgeving wilt aanpassen, gebruikt u eerst de az containerapp env create opdracht om uw omgeving te maken en aan te passen. Wanneer u de opdracht vervolgens uitvoert, gebruikt u de up--environment optie om de aangepaste omgeving op te geven.

Als u geen bestaande omgeving opgeeft, zoekt de up opdracht naar een omgeving in uw resourcegroep. Als met de opdracht een omgeving wordt gevonden, wordt die omgeving gebruikt. Als de opdracht geen omgeving vindt, wordt er een gemaakt die een Log Analytics-werkruimte bevat.

Zie voor meer informatie over de az containerapp up opdracht en de bijbehorende opties az containerapp up.

Uw Azure CLI-omgeving instellen

  1. Gebruik de Azure CLI om u aan te melden bij Azure.

    az login
    
  2. Installeer de Container Apps-extensie voor de Azure CLI.

    az extension add --name containerapp --upgrade
    
  3. Registreer de Microsoft.App naamruimte.

    az provider register --namespace Microsoft.App
    
  4. Registreer de Microsoft.OperationalInsights provider voor de Log Analytics-werkruimte.

    az provider register --namespace Microsoft.OperationalInsights
    

Implementeren vanuit een bestaande installatiekopieën

U kunt een container-app implementeren die gebruikmaakt van een bestaande installatiekopieën in een openbaar of privécontainerregister. Als u implementeert vanuit een privéregister, moet u uw referenties opgeven met behulp van de --registry-server, --registry-usernameen --registry-password opties.

U kunt de volgende voorbeeldcode gebruiken om een container-app te deployen vanuit een bestaande afbeelding. Voordat u de opdracht uitvoert, vervangt u de tijdelijke aanduidingen, die tussen punthaken staan, door uw waarden.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Met deze opdracht worden de volgende acties uitgevoerd:

  1. Hiermee maakt u een resourcegroep.
  2. Hiermee maakt u een omgeving en Log Analytics-werkruimte.
  3. Hiermee maakt en implementeert u een container-app die de installatiekopie ophaalt uit een openbaar register.
  4. Stelt de waarde van de container-app ingress in op external, met een doelpoort ingesteld op de opgegeven waarde.

U kunt ook de up opdracht gebruiken om een container-app opnieuw te implementeren. Als u opnieuw wilt implementeren met een nieuwe installatiekopie, gebruikt u de --image optie om een nieuwe installatiekopie op te geven. Zorg ervoor dat de --resource-group en --environment opties zijn ingesteld op de waarden van de oorspronkelijke implementatie.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Implementeren vanuit lokale broncode

Wanneer u de up opdracht gebruikt om te implementeren vanuit een lokale bron, wordt de containerinstallatiekopieën gebouwd, naar een register gepusht en de container-app geïmplementeerd. Als u geen register opgeeft, maakt de opdracht er een in Container Registry.

Met de opdracht kunt u de installatiekopieën bouwen met of zonder een Dockerfile. In builds die geen Dockerfile gebruiken, worden de volgende talen ondersteund:

  • .NET
  • Node.js
  • PHP
  • Python

U kunt de volgende voorbeeldcode gebruiken om een container-app te implementeren vanuit lokale broncode:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

Met deze opdracht worden de volgende acties uitgevoerd:

  1. Hiermee maakt u een resourcegroep.
  2. Hiermee maakt u een omgeving en Log Analytics-werkruimte.
  3. Hiermee maakt u een register in Container Registry.
  4. Bouwt de containerimage (door gebruik te maken van de Dockerfile als dat bestaat).
  5. Pusht de installatiekopieën naar het register.
  6. Hiermee maakt en implementeert u de container-app.

Wanneer de Dockerfile de EXPOSE instructie bevat, configureert de up opdracht de ingress en de doelpoort van de container-app met behulp van de informatie in de Dockerfile. Als u inkomend verkeer configureert via uw Dockerfile of uw app geen toegangsbeheerobject vereist, kunt u de --ingress optie weglaten.

De uitvoer van de opdracht bevat de URL voor de container-app.

Als de opdracht rapporteert dat er wordt gewacht op de Cloud Build-agent, maar vervolgens niet meer reageert, kan een tijdelijke GitHub-fout de oorzaak van het probleem zijn. Voer de opdracht opnieuw uit om de situatie op te lossen.

Als er een fout opgetreden is, kunt u de opdracht opnieuw uitvoeren met de --debug optie voor meer informatie. Als de build mislukt zonder dockerfile, kunt u proberen een Dockerfile toe te voegen en de opdracht opnieuw uit te voeren.

Als u de az containerapp up opdracht wilt gebruiken om uw container-app opnieuw te implementeren met een bijgewerkte installatiekopie, neemt u de --resource-group en --environment opties op. Voer de volgende stappen uit om een container-app opnieuw te implementeren vanuit de lokale broncode:

  1. Breng wijzigingen aan in de broncode.

  2. Voer de volgende opdracht uit:

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

Implementeren vanuit een GitHub-opslagplaats

Wanneer u de az containerapp up opdracht gebruikt om te implementeren vanuit een GitHub-opslagplaats, wordt er een GitHub Actions-werkstroom gegenereerd waarmee de containerinstallatiekopieën worden gebouwd, naar een register worden gepusht en de container-app wordt geïmplementeerd. Als u geen register opgeeft, maakt de opdracht er een in Container Registry.

Er is een Dockerfile vereist om de installatiekopieën te bouwen. Wanneer de Dockerfile de EXPOSE instructie bevat, configureert de opdracht de ingress en de doelpoort van de container-applicatie met behulp van de informatie in de Dockerfile.

U kunt de volgende voorbeeldcode gebruiken om een container-app te implementeren vanuit een GitHub-opslagplaats:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --ingress external 

Met deze opdracht worden de volgende acties uitgevoerd:

  1. Hiermee maakt u een resourcegroep.
  2. Hiermee maakt u een omgeving en Log Analytics-werkruimte.
  3. Hiermee maakt u een register in Container Registry.
  4. De containerafbeelding wordt opgebouwd met behulp van de Dockerfile.
  5. Pusht de installatiekopieën naar het register.
  6. Hiermee maakt en implementeert u de container-app.
  7. Hiermee maakt u een GitHub Actions-werkstroom voor het bouwen van de containerinstallatiekopieën en implementeert u de container-app wanneer toekomstige wijzigingen naar de GitHub-opslagplaats worden gepusht.

Als de opdracht mislukt omdat er geen service-principal kan worden gemaakt, kunt u handmatig een service-principal maken in Azure. Vervolgens kunt u er informatie over doorgeven aan de opdracht:

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
  --service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
  --service-principal-tenant-id "$AZURE_TENANT_ID"
  --ingress external 

Als u inkomend verkeer configureert via uw Dockerfile of uw app geen toegangsbeheerobject vereist, kunt u de --ingress optie weglaten.

Met de up opdracht maakt u een GitHub Actions-werkstroom. Als gevolg hiervan heeft het opnieuw uitvoeren van de opdracht het ongewenste effect van het maken van meerdere werkstromen. Als u wijzigingen in de installatiekopieën van uw app wilt implementeren, pusht u wijzigingen naar uw GitHub-opslagplaats in plaats van de opdracht opnieuw uit te voeren. De GitHub-werkstroom detecteert automatisch de wijzigingen in uw opslagplaats en bouwt en implementeert vervolgens uw app. Als u de werkstroom wilt wijzigen, bewerkt u het werkstroombestand in GitHub.

Instellingen voor container-apps configureren

De az containerapp up opdracht biedt een gestroomlijnde manier om container-apps te maken en te implementeren die voornamelijk gebruikmaken van standaardinstellingen. Nadat u de up opdracht hebt gebruikt, moet u echter andere Azure CLI-opdrachten uitvoeren, zoals de volgende opdrachten als u meer geavanceerde instellingen wilt configureren:

Als u andere instellingen voor uw container-app wilt aanpassen, zoals resource- of schaalinstellingen, gebruikt u eerst de up opdracht om uw container-app te implementeren. Gebruik vervolgens de az containerapp update opdracht om deze instellingen te wijzigen. De az containerapp up opdracht is geen afkorting voor de az containerapp update opdracht.

Volgende stap