Delen via


Instellen van voortdurende implementatie naar Azure App Service

In dit artikel wordt uitgelegd hoe u continue implementatie (CD) naar Azure App Service kunt configureren door updates op te halen uit GitHub, Bitbucket, Azure-opslagplaatsen of andere opslagplaatsen.

Vereiste voorwaarden

Schrijfmachtigingen voor een Azure App Service-app in een opslagplaats voor broncodebeheer.

Uw opslagplaats voorbereiden

"Om geautomatiseerde builds van de App Service-buildserver te verkrijgen, moet je ervoor zorgen dat de hoofdmap van je repository de juiste bestanden in je project bevat."

Looptijd Bestanden in de rootdirectory
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.html, default.asp, index.htm, index.html, of iisstart.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.

Om uw implementatie aan te passen, voegt u een .deployment bestand toe in de hoofdmap van de repository. Voor meer informatie, zie Customize deployments (Implementaties aanpassen) en Custom deployment script (Aangepast implementatiescript).

Hint

Visual Studio kan een repository voor u maken. Met deze methode is uw project direct klaar voor implementatie via Git.

Continue implementatie inschakelen

  1. Ga in Azure Portal naar de pagina voor uw App Service-app en selecteer Implementatiecentrum in het linkernavigatiemenu.

  2. Selecteer op het tabblad Instellingen onder Bron het type bronbeheeropslagplaats.

    Schermopname van het kiezen van de implementatiebron.

  3. Volg de instructies voor uw brontype om de implementatie te configureren.

    Schermopname van het configureren van de implementatiebron.

Alle vermelde bronnen kunnen worden gebouwd met App Service Build Service. Sommige bronnen kunnen ook worden gebouwd met GitHub Actions of Azure Pipelines. Zie Build-providers voor meer informatie.

GitHub Actions is de standaard-GitHub-buildprovider. Als u de provider wilt wijzigen, selecteert u Provider wijzigen, selecteert u App Service Build Service of Azure Pipelines en selecteert u VERVOLGENS OK.

Selecteer indien nodig Autoriseren en volg de autorisatieprompts voor GitHub. Om te implementeren vanuit een andere gebruiker zijn repository, selecteer Account wijzigen.

  1. Selecteer de juiste GitHub-organisatie, opslagplaats en vertakking.

    Als je geen organisatie of repository kunt vinden, moet je mogelijk meer toestemmingen inschakelen op GitHub. Zie Toegang tot de opslagplaatsen van uw organisatie beheren voor meer informatie.

  2. Selecteer onder Verificatietype de door de gebruiker toegewezen identiteit voor betere beveiliging.

    Als uw Azure-account over de vereiste machtigingen beschikt, maakt App Service een door de gebruiker toegewezen beheerde identiteit voor u of kunt u een bestaande beheerde identiteit kiezen. Als je niet over de vereiste machtigingen beschikt, werk dan samen met je Azure-beheerder om een identiteit met de vereiste rol op je app aan te maken, en selecteer deze vervolgens in de vervolgkeuzelijst.

  3. App Service selecteert een workflowtemplate op basis van de taalstackinstelling van uw app en voegt deze toe aan uw geselecteerde GitHub-repository. U kunt desgewenst een voorbeeldbestand selecteren om het werkstroombestand weer te geven voordat u de wijzigingen opslaat.

  4. Selecteer Opslaan.

Nieuwe commits in de geselecteerde repository en branch worden nu continu gedeployd naar je App Service-app. U kunt de doorvoeringen en implementaties bijhouden op het tabblad Logboeken .

Continue implementatie uitschakelen

Continue implementatie uitschakelen voor een verbonden bron:

  1. Ga in Azure Portal naar de pagina voor uw App Service-app en selecteer Implementatiecentrum in het linkernavigatiemenu.

  2. Selecteer Verbinding verbreken op het tabblad Instellingen.

    Schermafbeelding die laat zien hoe je de synchronisatie van je cloudmap met je App Service-app in de Azure-portal kunt verbreken.

  3. Kies OK.

Voor GitHub blijft het werkstroombestand standaard aanwezig in de opslagplaats, maar u ziet de geïntegreerde voortgang niet meer op het tabblad Logboeken van het Implementatiecentrum.

Wat zijn de buildproviders?

Bouwproviders helpen je een oplossing voor continue integratie en continue levering (CI/CD) te bouwen met Azure App Service door het automatiseren van de bouw, test en implementatie. Sommige implementatiebronnen bieden verschillende opties voor buildproviders. Alle vermelde bronnen kunnen worden gebouwd met App Service Build Service.

U bent niet beperkt tot de vermelde opties voor buildproviders, maar App Service helpt u snel de vermelde opties in te stellen en geïntegreerde implementatielogboekregistratie te krijgen.

GitHub Actions (GitHub-acties)

De Build-provider van GitHub Actions is alleen beschikbaar voor de GitHub-bron en is de standaardinstelling voor GitHub-implementaties. De buildprovider stelt CI/CD in door een GitHub Actions-werkstroombestand in te leggen in uw GitHub-opslagplaats waarmee Build- en implementatietaken van App Service worden verwerkt.

Voor basisverificatie voegt de Build-provider van GitHub Actions het publicatieprofiel voor uw app toe als een GitHub-geheim. In het werkstroombestand wordt dit geheim gebruikt om te verifiëren met App Service.

Voor door de gebruiker toegewezen identiteit schakelt App Service de aanbevolen Microsoft OpenID Connect-verificatie in en configureert de benodigde resources in Azure en GitHub. Zie voor meer informatie Wat doet de door de gebruiker toegewezen identiteitsoptie voor GitHub Actions?

De Build-provider van GitHub Actions legt gegevens vast uit de logboeken van de werkstroomuitvoering en geeft deze weer op het tabblad Logboeken in het Implementatiecentrum van de app.

U kunt de buildprovider voor GitHub Actions op verschillende manieren aanpassen:

  • Pas het werkstroombestand aan nadat het is gegenereerd in uw GitHub-opslagplaats. Zie Werkstroomsyntaxis voor GitHub Actions voor meer informatie. Implementeer de aangepaste werkstroom in App Service met de azure/webapps-deploy actie.
  • Als de geselecteerde vertakking is beveiligd, kunt u een voorbeeld van het werkstroombestand bekijken zonder de configuratie op te slaan. Pas het bestand aan en voeg het vervolgens handmatig toe aan uw opslagplaats. Deze methode biedt u geen logboekintegratie met Azure Portal.
  • Implementeer met behulp van een Microsoft Entra ID-service-principal in plaats van basisverificatie of een door de gebruiker toegewezen identiteit. U kunt deze methode niet configureren in de portal.

App Service buildservice

De App Service-buildservice is de systeemeigen App Service-implementatie en build-engine. Wanneer u deze optie selecteert, voegt App Service een webhook toe aan de opslagplaats die u hebt geautoriseerd. Elke codepush naar de opslagplaats activeert de webhook en App Service haalt de wijzigingen op en voert eventuele implementatietaken uit. Zie Implementeren vanuit GitHub (Kudu) voor meer informatie.

Voor de App Service-buildservice is basisverificatie van Source Control Manager (SCM) vereist om de webhook te laten werken. Basisverificatie is minder veilig dan andere verificatiemethoden. Voor meer informatie, zie:

Azure-pipelines

Azure Pipelines is het build-onderdeel van Azure DevOps. U kunt een pijplijn configureren voor het bouwen, testen en implementeren van uw app in App Service vanuit elke ondersteunde bronopslagplaats.

Als u Azure Pipelines wilt gebruiken als buildprovider, selecteert u de optie Azure Pipelines in het App Service Deployment Center en gaat u vervolgens rechtstreeks naar Azure DevOps om de pijplijn te configureren. Zie Implementeren in App Service met behulp van Azure Pipelines voor meer informatie.

Veelgestelde vragen

Hoe werkt de Build-provider van GitHub Actions als basisverificatie is uitgeschakeld?

De Build-provider van GitHub Actions werkt niet met basisverificatie als basisverificatie is uitgeschakeld. Probeer in plaats daarvan GitHub Actions te gebruiken met de door de gebruiker toegewezen identiteitsoptie. Voor meer informatie, zie Deploy without basic authentication.

Wat gebeurt er met mijn app tijdens de implementatie die fouten of onvoorspelbaar gedrag kan veroorzaken?

Officieel ondersteunde implementatiemethoden brengen wijzigingen aan in bestanden in de map /home/site/wwwroot die worden gebruikt om uw app uit te voeren. De implementatie kan mislukken vanwege vergrendelde bestanden. De app gedraagt zich mogelijk ook onvoorspelbaar tijdens de implementatie als de bestanden niet allemaal tegelijkertijd worden bijgewerkt, wat ongewenst is voor een klantgerichte app.

Er zijn een aantal manieren om deze problemen te voorkomen.

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

Wanneer u door de gebruiker toegewezen identiteit voor de GitHub-bron selecteert, configureert App Service alle benodigde resources in Azure en GitHub. App Service stelt de aanbevolen Microsoft OpenID Connect-authenticatie met GitHub Actions in staat.

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.
  • Maakt de geheimen AZURE_CLIENT_ID, AZURE_TENANT_ID, en AZURE_SUBSCRIPTION_ID van de federatieve referentie in uw geselecteerde GitHub-opslagplaats.
  • Hiermee wijst u de identiteit toe aan uw app.

Vervolgens kunt u de Azure/login actie gebruiken in een GitHub Actions-werkstroom in uw GitHub-opslagplaats 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 Identiteit 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 je Azure-account niet over de vereiste machtigingen beschikt om een door de gebruiker toegewezen beheerde identiteit voor GitHub-acties te creëren. U hebt de volgende machtigingen nodig, toegewezen aan uw app.

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

De rollen Beheerder en Eigenaar van Azure-gebruikerstoegang hebben standaard deze machtigingen, maar de rol Inzender niet. Als u niet over de vereiste machtigingen beschikt, neem dan contact op met uw Azure-beheerder om een door de gebruiker toegewezen beheerde identiteit te maken met de rol Inzender voor websites . Vervolgens kunt u die identiteit selecteren in de vervolgkeuzelijst Identiteit voor GitHub-bron in het App Service Deployment Center.

Voor meer informatie over het gebruik van alternatieve stappen, zie Deploy to App Service using GitHub Actions.

Waarom zie ik de foutmelding "Deze identiteit heeft geen schrijfbevoegdheden 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]((#what-does-the-user-assigned-identity-option-do-for-github-actions) tussen de GitHub-opslagplaats en de App Service-app. De identiteit moet de rol Eigenaar, Bijdrager, of Websites Bijdrager hebben in de app. De minst bevoorrechte rol die de identiteit nodig heeft, is Inzender voor websites.