Doorlopende implementatie voor Azure Functions

U kunt Azure Functions gebruiken om uw code continu te implementeren met behulp van broncodebeheerintegratie. Integratie van broncodebeheer maakt een werkstroom mogelijk waarin een code-update build, verpakking en implementatie activeert van uw project naar Azure.

Continue implementatie is een goede optie voor projecten waarbij u meerdere en frequente bijdragen integreert. Wanneer u continue implementatie gebruikt, onderhoudt u één bron van waarheid voor uw code, zodat teams eenvoudig kunnen samenwerken.

Stappen in dit artikel laten zien hoe u continue code-implementaties configureert voor uw functie-app in Azure met behulp van het Implementatiecentrum in Azure Portal. U kunt ook continue integratie configureren met behulp van de Azure CLI.

Functions ondersteunt deze bronnen voor continue implementatie in uw app:

Onderhoud uw projectcode in Azure-opslagplaatsen, een van de services in Azure DevOps. Ondersteunt zowel Git als Team Foundation Version Control. Wordt gebruikt met de Build-provider van Azure Pipelines). Zie Wat is Azure-opslagplaatsen voor meer informatie ?

U kunt uw functie-app ook verbinden met een externe Git-opslagplaats, maar hiervoor is handmatige synchronisatie vereist. Zie Implementatietechnologieën in Azure Functions voor meer informatie over implementatieopties.

Notitie

Opties voor continue implementatie die in dit artikel worden behandeld, zijn specifiek voor implementaties met alleen code. Zie Continue implementatie van containers van containers naar Azure inschakelen voor implementaties van functie-apps in containers.

Vereisten

Voor een geslaagde continue implementatie moet uw mapstructuur compatibel zijn met de basismapstructuur die Azure Functions verwacht.

De code voor alle functies in een specifieke functie-app bevindt zich in een hoofdprojectmap die een hostconfiguratiebestand bevat. Het bestand host.json bevat runtimespecifieke configuraties en bevindt zich in de hoofdmap van de functie-app. Een bin-map bevat pakketten en andere bibliotheekbestanden die de functie-app nodig heeft. Specifieke mapstructuren die voor de functie-app zijn vereist, zijn afhankelijk van de taal:

Alle functies in de functie-app moeten dezelfde taalstack delen.

Providers bouwen

Het bouwen van uw codeproject maakt deel uit van het implementatieproces. Het specifieke buildproces is afhankelijk van uw specifieke taalstack, besturingssysteem en hostingabonnement. Builds kunnen lokaal of extern worden uitgevoerd, afhankelijk van uw specifieke hosting. Zie Remote build voor meer informatie.

Functions ondersteunt deze buildproviders:

Azure Pipelines is een van de services in Azure DevOps en de standaardbuildprovider voor Azure-opslagplaatsprojecten. U kunt pijplijnen ook gebruiken om projecten te bouwen vanuit GitHub. In Pijplijnen is er een AzureFunctionApp taak die speciaal is ontworpen voor implementatie in Azure Functions. Deze taak biedt u controle over hoe het project wordt gebouwd, verpakt en geïmplementeerd.

Welke van deze buildproviders u kunt gebruiken, is afhankelijk van de specifieke bron van de code-implementatie.

Implementatiecentrum

Azure Portal biedt een implementatiecentrum voor uw functie-apps, waardoor het eenvoudiger is om continue implementatie te configureren. De manier waarop u continue implementatie configureert, is afhankelijk van het specifieke broncodebeheer waarin uw code zich bevindt en de buildprovider die u kiest.

Blader in Azure Portal naar de pagina van uw functie-app en selecteer Implementatiecentrum onder Implementatie in het linkerdeelvenster.

Schermopname van het functie-app-implementatiecentrum in Azure Portal waar u uw bronopslagplaats kiest.

Selecteer het type bronopslagplaats waarin uw projectcode wordt onderhouden op basis van een van de volgende ondersteunde opties:

Implementaties van Azure-opslagplaatsen die gebruikmaken van Azure Pipelines worden gedefinieerd in de Azure DevOps-portal en niet vanuit uw functie-app. Zie Continue levering met Azure Pipelines voor een stapsgewijze handleiding voor het maken van een implementatie op basis van pijplijnen vanuit Azure-opslagplaatsen.

Nadat de implementatie is voltooid, wordt alle code van de opgegeven bron geïmplementeerd in uw app. Op dat moment activeren wijzigingen in de implementatiebron een implementatie van deze wijzigingen in uw functie-app in Azure.

Overwegingen

Houd rekening met deze overwegingen bij het plannen van een strategie voor continue implementatie:

  • GitHub is de enige bron die momenteel ondersteuning biedt voor continue implementatie voor Linux-apps die worden uitgevoerd in een verbruiksabonnement. Dit is een populaire hostingoptie voor Python-apps.

  • De implementatie-eenheid voor functies in Azure is de functie-app. Alle functies in een functie-app worden tegelijkertijd en in hetzelfde pakket geïmplementeerd.

  • Nadat u continue implementatie hebt ingeschakeld, wordt de toegang tot functiecode in Azure Portal geconfigureerd als alleen-lezen omdat de bron van waarheidergens anders staat.

  • U moet altijd continue implementatie configureren voor een staging-site en niet voor de productiesite. Wanneer u de productiesite gebruikt, worden code-updates rechtstreeks naar productie gepusht zonder te worden geverifieerd in Azure. Schakel in plaats daarvan continue implementatie in naar een staging-site, controleer updates in de staging-site en nadat alles correct wordt uitgevoerd, kunt u de staging-sitecode in productie wisselen.

  • Het Implementatiecentrum biedt geen ondersteuning voor het inschakelen van continue implementatie voor een functie-app met binnenkomende netwerkbeperkingen. U moet in plaats daarvan de werkstroom van de buildprovider rechtstreeks configureren in GitHub of Azure Pipelines. Voor deze werkstromen moet u ook een virtuele machine in hetzelfde virtuele netwerk gebruiken als de functie-app als een zelf-hostende agent (pijplijnen) of een zelf-hostende runner (GitHub).

Continue implementatie tijdens het maken van apps

Op dit moment kunt u continue implementatie vanuit GitHub configureren met behulp van GitHub Actions wanneer u uw functie-app maakt in Azure Portal. U kunt dit doen op het tabblad Implementatie op de pagina Functie-app maken.

Als u een andere implementatiebron of buildprovider wilt gebruiken voor continue integratie, maakt u eerst uw functie-app en gaat u terug naar de portal en stelt u continue integratie in het Deployment Center in.

Basisverificatie inschakelen voor implementaties

Standaard wordt uw functie-app gemaakt met basisverificatietoegang tot het scm eindpunt uitgeschakeld. Hiermee blokkeert u het publiceren op alle methoden die geen beheerde identiteiten kunnen gebruiken voor toegang tot het scm eindpunt. De publicatie-effecten van het uitschakelen van het scm eindpunt worden beschreven in Implementatie zonder basisverificatie.

Belangrijk

Wanneer u basisverificatie gebruikt, worden referenties verzonden in duidelijke tekst. Als u deze referenties wilt beveiligen, moet u alleen toegang krijgen tot het scm eindpunt via een versleutelde verbinding (HTTPS) wanneer u basisverificatie gebruikt. Zie Secure deployment voor meer informatie.

Basisverificatie voor het scm eindpunt inschakelen:

  1. Navigeer in Azure Portal naar uw functie-app.

  2. Selecteer in het linkermenu van de app configuratie-algemene>instellingen.

  3. Stel SCM Basic Auth Publishing Credentials in op Aan en selecteer Opslaan.

Volgende stappen