Share via


Continue implementatie naar Azure App Service

Notitie

Vanaf 1 juni 2024 hebben alle nieuw gemaakte App Service-apps de mogelijkheid om een unieke standaardhostnaam te genereren met behulp van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net. Bestaande app-namen blijven ongewijzigd.

Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Raadpleeg de unieke standaardhostnaam voor App Service-resource voor meer informatie.

Azure-app Service maakt continue implementatie mogelijk vanuit GitHub-, Bitbucket- en Azure Repos-opslagplaatsen door de meest recente updates op te halen.

Uw opslagplaats voorbereiden

Als u geautomatiseerde builds wilt ophalen van Azure-app Service-buildserver, moet u ervoor zorgen dat de hoofdmap van uw opslagplaats de juiste bestanden in uw project heeft.

Runtime Bestanden in hoofdmap
ASP.NET (alleen Windows) *.sln, *.csproj of default.aspx
ASP.NET Core *.sln of *.csproj
PHP index.php
Ruby (alleen Linux) Gemfile
Node.js server.js, app.jsof package.json met een startscript
Python *.py, requirements.txt of runtime.txt
HTML default.htm, , default.htmldefault.asp, , index.htm, of index.htmliisstart.htm
WebJobs <job_name>/run.<extension> onder App_Data/jobs/continuous voor continue webtaken of App_Data/jobs/triggered voor geactiveerde webtaken. Zie Kudu WebJobs documentation (Documentatie over Kudu WebJobs) voor meer informatie.
Functies Zie Continue implementatie voor Azure Functions.

Als u uw implementatie wilt aanpassen, neemt u een DEPLOYMENT-bestand op in de hoofdmap van de opslagplaats. Zie Customize deployments (Implementaties aanpassen) en Custom deployment script (Aangepast implementatiescript) voor meer informatie.

Notitie

Als u Visual Studio gebruikt, laat u Visual Studio een opslagplaats voor u maken. Uw project is onmiddellijk klaar voor implementatie via Git.

De implementatiebron configureren

  1. Ga in Azure Portal naar de beheerpagina voor uw App Service-app.

  2. Selecteer Implementatiecentrum in het linkerdeelvenster. Selecteer vervolgens Instellingen.

  3. Selecteer in het vak Bron een van de CI/CD-opties:

    Schermopname van het kiezen van de implementatiebron.

Selecteer het tabblad dat overeenkomt met uw buildprovider om door te gaan.

  1. GitHub Actions is de standaard buildprovider. Als u de provider wilt wijzigen, selecteert u App Service Build Service wijzigen>>OK.

  2. Als u voor het eerst vanuit GitHub implementeert, selecteert u Autoriseren en volgt u de autorisatieprompts. Als u wilt implementeren vanuit de opslagplaats van een andere gebruiker, selecteert u Account wijzigen.

  3. Nadat u uw Azure-account met GitHub hebt geautoriseerd, selecteert u de gewenste organisatie, opslagplaats en vertakking .

    Als u een organisatie of opslagplaats niet kunt vinden, moet u mogelijk meer machtigingen inschakelen op GitHub. Zie Toegang tot de opslagplaatsen van uw organisatie beheren voor meer informatie.

  4. Selecteer onder Verificatietype de door de gebruiker toegewezen identiteit voor betere beveiliging. Zie veelgestelde vragen voor meer informatie.

    Notitie

    Als uw Azure-account over de vereiste machtigingen beschikt voor de door de gebruiker toegewezen identiteit, maakt Azure een door de gebruiker toegewezen beheerde identiteit voor u. Als u dit niet doet, werkt u samen met uw Azure-beheerder om een identiteit te maken met de vereiste rol in uw app en selecteert u deze hier in de vervolgkeuzelijst.

  5. (Optioneel) Als u het bestand wilt zien voordat u de wijzigingen opslaat, selecteert u Voorbeeldbestand. App Service selecteert een werkstroomsjabloon op basis van de taalstackinstelling van uw app en voert deze door in de geselecteerde GitHub-opslagplaats.

  6. Selecteer Opslaan.

    Nieuwe doorvoeringen in de geselecteerde opslagplaats en vertakking worden nu continu geïmplementeerd in uw App Service-app. U kunt de doorvoeringen en implementaties bijhouden op het tabblad Logboeken .

Continue implementatie uitschakelen

  1. Ga in Azure Portal naar de beheerpagina voor uw App Service-app.

  2. Selecteer Implementatiecentrum in het linkerdeelvenster. Selecteer vervolgens Instellingen>verbreken:

    Schermopname die laat zien hoe u de synchronisatie van uw cloudmap verbreekt met uw App Service-app in Azure Portal.

  3. Het werkstroombestand van GitHub Actions blijft standaard behouden in uw opslagplaats, maar blijft de implementatie naar uw app activeren. Als u het bestand uit uw opslagplaats wilt verwijderen, selecteert u Werkstroombestand verwijderen.

  4. Selecteer OK.

Wat zijn de buildproviders?

Afhankelijk van uw implementatiebron in het Implementatiecentrum ziet u mogelijk een aantal opties om te selecteren voor buildproviders. Buildproviders helpen u bij het bouwen van een CI/CD-oplossing met Azure-app Service door build, test en implementatie te automatiseren.

U bent niet beperkt tot de opties van de buildprovider in het Implementatiecentrum, maar Met App Service kunt u ze snel instellen en biedt u een aantal geïntegreerde ervaring voor het vastleggen van implementaties.

De Build-provider van GitHub Actions is alleen beschikbaar voor gitHub-implementatie. Wanneer het implementatiecentrum van de app is geconfigureerd, worden deze acties uitgevoerd om CI/CD in te stellen:

  • Zet een Werkstroombestand voor GitHub Actions op in uw GitHub-opslagplaats voor het afhandelen van build- en implementatietaken in App Service.
  • Voor basisverificatie voegt u het publicatieprofiel voor uw app toe als een GitHub-geheim. In het werkstroombestand wordt dit geheim gebruikt om te verifiëren met App Service.
  • Zie Wat doet de door de gebruiker toegewezen identiteit voor GitHub Actions?
  • Registreert gegevens uit de logboeken voor het uitvoeren van werkstromen en geeft deze weer op het tabblad Logboeken in het Implementatiecentrum.

U kunt de Build-provider voor GitHub Actions op de volgende manieren aanpassen:

  • Pas het werkstroombestand aan nadat het is gegenereerd in uw GitHub-opslagplaats. Zie Werkstroomsyntaxis voor GitHub Actions voor meer informatie. Zorg ervoor dat de werkstroom wordt geïmplementeerd in App Service met de actie Azure/webapps-deploy .
  • Als de geselecteerde vertakking is beveiligd, kunt u nog steeds een voorbeeld van het werkstroombestand bekijken zonder de configuratie op te slaan en deze vervolgens handmatig toe te voegen aan uw opslagplaats. Deze methode biedt u geen logboekintegratie met Azure Portal.
  • In plaats van basisverificatie of een door de gebruiker toegewezen identiteit te gebruiken, kunt u ook implementeren met behulp van een service-principal in Microsoft Entra-id. Dit kan niet worden geconfigureerd in de portal.

Wat gebeurt er met mijn app tijdens de implementatie?

Alle officieel ondersteunde implementatiemethoden brengen wijzigingen aan in de bestanden in de map /home/site/wwwroot van uw app. Deze bestanden worden gebruikt om uw app uit te voeren. De implementatie kan dus mislukken vanwege vergrendelde bestanden. De app kan zich ook onvoorspelbaar gedragen tijdens de implementatie, omdat de bestanden niet allemaal tegelijk worden bijgewerkt. Dit gedrag is ongewenst voor een klantgerichte app. Er zijn een paar manieren om deze problemen te voorkomen:

Veelgestelde vragen

Werkt de GitHub Actions-buildprovider met basisverificatie als basisverificatie is uitgeschakeld?

Nee Gebruik GitHub Actions met de door de gebruiker toegewezen identiteitsoptie .

Zie Implementatie zonder basisverificatie voor meer informatie.

Wat doet de door de gebruiker toegewezen identiteitsoptie voor GitHub Actions?

Wanneer u een door de gebruiker toegewezen identiteit selecteert onder de GitHub Actions-bron, configureert App Service alle benodigde resources in Azure en in GitHub om de aanbevolen OpenID Connect-verificatie in te schakelen met GitHub Actions.

App Service voert de volgende bewerkingen uit:

  • Hiermee maakt u een federatieve referentie tussen een door de gebruiker toegewezen beheerde identiteit in Azure en uw geselecteerde opslagplaats en vertakking in GitHub.
  • Hiermee maakt u de geheimen AZURE_CLIENT_IDen AZURE_SUBSCRIPTION_ID AZURE_TENANT_IDvan de federatieve referentie in de geselecteerde GitHub-opslagplaats.
  • Hiermee wijst u de identiteit toe aan uw app.

In een GitHub Actions-werkstroom in uw GitHub-opslagplaats kunt u vervolgens de Azure-/aanmeldingsactie gebruiken om te verifiëren met uw app met behulp van OpenID Connect. Zie Het werkstroombestand toevoegen aan uw GitHub-opslagplaats voor voorbeelden.

Als uw Azure-account over de vereiste machtigingen beschikt, maakt App Service een door de gebruiker toegewezen beheerde identiteit en configureert het voor u. Deze identiteit wordt niet weergegeven op de pagina Identiteiten van uw app. Als uw Azure-account niet over de vereiste machtigingen beschikt, moet u een bestaande identiteit met de vereiste rol selecteren.

Waarom zie ik de fout 'U beschikt niet over voldoende machtigingen voor deze app om op rollen gebaseerde toegang toe te wijzen aan een beheerde identiteit en federatieve referenties te configureren'?

Het bericht geeft aan dat uw Azure-account niet beschikt over de vereiste machtigingen voor het maken van een door de gebruiker toegewezen beheerde identiteit voor de GitHub Actions. De vereiste machtigingen (gericht op uw app) zijn:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

De rol Beheerder voor gebruikerstoegang en de rol Eigenaar hebben standaard al deze machtigingen, maar de rol Inzender niet. Als u niet over de vereiste machtigingen beschikt, kunt u samenwerken met uw Azure-beheerder om een door de gebruiker toegewezen beheerde identiteit te maken met de rol Inzender voor websites. In het Implementatiecentrum kunt u vervolgens de identiteit selecteren in de vervolgkeuzelijst GitHub>Identity.

Zie Implementeren in App Service met behulp van GitHub Actions voor meer informatie over de alternatieve stappen.

Waarom zie ik de fout 'Deze identiteit heeft geen schrijfmachtigingen voor deze app. Selecteer een andere identiteit of werk samen met uw beheerder om de rol Inzender voor de website aan uw identiteit in deze app te verlenen"?

Het bericht geeft aan dat de geselecteerde door de gebruiker toegewezen beheerde identiteit niet over de vereiste rol beschikt om OpenID Connect in te schakelen tussen de GitHub-opslagplaats en de App Service-app. De identiteit moet een van de volgende rollen hebben in de app: Eigenaar, Inzender, Inzender voor websites. De minst bevoorrechte rol die de identiteit nodig heeft, is Inzender voor websites.

Meer resources