Pakketgebaseerde deployment voor Azure Functions

Dit artikel beschrijft hoe je een kant-en-klaar .zip deployment-pakket maakt, het pakket naar Azure deployt en je functie-app configureert om direct vanuit het pakket te draaien. Je kunt uitrollen door gebruik te maken van Azure Functions Core Tools, Azure CLI of de deployment REST API's.

Pakketgebaseerde deployment is de standaard voor functie-apps die vanaf code draaien. De implementatietechnologie en pakketconfiguratie hangen af van het hostingplan. Selecteer je hostingplan bovenaan dit artikel.

Azure Functions heeft het volledige scala aan continue implementatie- en integratieopties die Azure App Service biedt. Zie Continue implementatie voor Azure Functions voor meer informatie.

Pakketimplementatie per hostingplan

De volgende tabel vat het deploymentproces en de pakketconfiguratie voor elk hostingplan samen:

Hostingabonnement Implementatieproces Pakketconfiguratie
Flex Consumption-abonnement Beheerde pakketimplementatie Wordt standaard uitgevoerd vanuit het geïmplementeerde pakket. Stel niet in WEBSITE_RUN_FROM_PACKAGE.
Premium-abonnement ZIP-implementatie Stel WEBSITE_RUN_FROM_PACKAGE in op 1 om uit te voeren vanuit het geïmplementeerde pakket.
Toegewezen (App Service)-plan ZIP-implementatie Stel WEBSITE_RUN_FROM_PACKAGE in op 1 om uit te voeren vanuit het geïmplementeerde pakket.
Verbruiksplan op Windows ZIP-implementatie Stel WEBSITE_RUN_FROM_PACKAGE in op 1 om uit het gedeployde pakket uit te voeren.
Verbruiksplan op Linux Remote build of URL van extern pakket Gebruik een externe pakket-URL voor een lokaal gebouwd pakket.
Azure Container Apps - een dienst van Microsoft waarmee je containers kunt uitvoeren en beheren in de cloud. Implementatie van containerimage Pakketgebaseerde code-uitrol is niet van toepassing.

Note

De inhoud in dit artikel is niet relevant voor het momenteel geselecteerde hostingplan. Om een ander abonnement te kiezen, gebruik je de selector bovenaan dit artikel. Voor een vergelijking van alle hostingplannen, zie Azure Functions hostingopties.

Functionele apps die op Azure Container Apps worden gehost, worden als containerimages en niet als .zip pakketten ingezet. Om een image-gebaseerde functie-app te maken en uit te rollen, zie Create a function app on Azure Container Apps using code.

Maak een deployment-pakket aan

In de meeste gevallen hoef je het deployment-pakket niet zelf te maken. Deze op tools gebaseerde deploymentmethoden creëren het pakket als onderdeel van het publicatieproces:

Voor Azure-pipelines deployment creëren de pipeline-buildstappen het .zip archief en geven het door aan de AzureFunctionApp deployment-taak.

Wanneer je direct met een kant-en-klare deployment-pakket moet werken, maak dan het pakket door gebruik te maken van func pack. Maak bijvoorbeeld zelf het pakket aan bij het deployen door een externe pakket-URL te gebruiken.

Je kunt het .zip archief ook handmatig aanmaken. Wanneer je het archief handmatig aanmaakt, volg dan deze pakketstructuurvereisten.

Vereisten voor deploymentspakketten

Het zip-archief dat u implementeert, moet alle bestanden bevatten die nodig zijn om uw functie-app uit te voeren. U kunt handmatig een zip-archief maken op basis van de inhoud van een Functions-projectmap met behulp van ingebouwde .zip compressiefunctionaliteit of niet-Microsoft-hulpprogramma's.

Het archief moet het host.json bestand in de hoofdmap van de uitgepakte map bevatten. De geselecteerde taalstack voor de functieapp creëert aanvullende vereisten.

Belangrijk

Voor talen die gecompileerde uitvoer genereren voor implementatie, moet u de inhoud van de uitvoermap comprimeren die u wilt publiceren en niet de hele projectmap. Wanneer Functions de inhoud van het zip-archief extraheert, moet het host.json bestand zich in de hoofdmap van het pakket bevinden.

Een zip-implementatieproces haalt de bestanden en mappen van het .zip archief uit in de wwwroot map. Als je de oudermap toevoegt bij het aanmaken van het archief, vindt het systeem de bestanden die het verwacht te zien in wwwrootniet .

Een pakket implementeren

Flex Consumption gebruikt pakketuitrol om een kant-en-klare pakket op te slaan in de deployment storage container van de app. De app draait direct vanuit dit pakket. Stel de WEBSITE_RUN_FROM_PACKAGE app-instelling niet in.

Implementeer het pakket met behulp van Core Tools, Visual Studio Code of Azure CLI. Deze tools selecteren automatisch het juiste pakketimplementatiegedrag voor een Flex Consumption-app.

Deze tools voeren een push-implementatie uit door het pakket naar het deployment-eindpunt van de app te sturen. Voor Flex Consumption sturen deze clients het pakket naar /api/publish de scm host van de app. Wanneer het deployment-endpoint alleen bereikbaar is via een privé-endpoint, moet de computer, runner of agent die de deployment uitvoert netwerkconnectiviteit en DNS-resolutie hebben voor het private deployment-endpoint. De deployment service slaat het verwerkte pakket op in de geconfigureerde deployment container; het direct uploaden van een pakket naar deze container deployt het niet. Om te deployen zonder van de initierende client naar het deployment-endpoint te pushen, gebruik je een Bicep- of ARM-template-deployment met een pakket-URL die de deploymentservice kan raadplegen.

Implementeren met behulp van Azure CLI

Gebruik het az functionapp deployment source config-zip commando om een pakket te deployen:

az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> --src <ZIP_FILE_PATH>

Voeg toe --build-remote true wanneer het bronproject een remote build vereist. Vraag geen remote build aan voor een pakket dat func pack al in een ready-to-run staat is opgebouwd, zoals een Go-deploymentpakket.

Om opslag voor deployment te configureren of een eerdere deployment te herstellen, zie Create and manage function apps in het Flex Consumption-plan.

Een pakket implementeren

Premium-, Dedicated- en Consumption-plan-apps gebruiken de zip-implementatie-API. De deploymentservice voert de volgende acties uit:

  • Verwijder bestanden die nog zijn van eerdere implementaties.
  • Voer deployment-scripts en andere deployment-aanpassingen uit.
  • Schrijf implementatielogboeken.
  • De synchronisatiefunctie wordt geactiveerd.

Belangrijk

Bij een zip-implementatie worden bestanden van de vorige implementatie verwijderd of bijgewerkt toen ze deel uitmaakten van die deployment. Het implementatieproces behoudt andere bestanden en mappen in je functie-app die niet bij de vorige implementatie hoorden. Voor implementatiedetails, zie de referentie voor zip-implementatie.

Implementeren met behulp van Azure CLI

Gebruik Azure CLI om een push-deployment te triggeren. Upload een .zip-bestand naar uw functie-app via de opdracht az functionapp deployment source config-zip. Als u deze opdracht wilt gebruiken, moet u Azure CLI versie 2.0.21 of hoger gebruiken. Gebruik de az --version opdracht om te zien welke Versie van Azure CLI u gebruikt.

Vervang in de volgende opdracht de <zip_file_path> tijdelijke aanduiding door het pad naar de locatie van uw .zip-bestand. Vervang ook door <app_name> de unieke naam van uw functie-app en vervang deze door <resource_group> de naam van uw resourcegroep.

az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>

Dit commando deployt projectbestanden van het .zip-bestand naar je functie-app in Azure en start de app opnieuw op.

Wanneer u Azure CLI op uw lokale computer gebruikt, <zip_file_path> is het pad naar het .zip-bestand op uw computer. U kunt ook Azure CLI uitvoeren in Azure Cloud Shell. Wanneer u Cloud Shell gebruikt, moet u eerst uw implementatie-.zip-bestand uploaden naar het Azure Files-account dat is gekoppeld aan uw Cloud Shell. In dat geval <zip_file_path> is dit de opslaglocatie die door uw Cloud Shell-account wordt gebruikt. Zie Persistent-bestanden in Azure Cloud Shell voor meer informatie.

ZIP-bestand implementeren met REST API's

U kunt de REST API's van de implementatieservice gebruiken om het .zip-bestand in uw app in Azure te implementeren. Als u wilt implementeren, verzendt u een POST-aanvraag naar https://<app_name>.scm.azurewebsites.net/api/zipdeploy. De POST-aanvraag moet het .zip-bestand in de berichttekst bevatten. De implementatiegegevens voor uw app moeten worden opgegeven in het verzoek met behulp van HTTP Basic-authenticatie. Zie de .zip push-implementatie referentie voor meer informatie.

Voor de HTTP BASIC-verificatie hebt u uw App Service-implementatiereferenties nodig. Zie Referenties op gebruikersniveau instellen en opnieuw instellen om te zien hoe u uw implementatiereferenties instelt.

Met cURL

In het volgende voorbeeld wordt het cURL-hulpprogramma gebruikt om een .zip-bestand te implementeren. Vervang de tijdelijke aanduidingen <deployment_user>, <zip_file_path>en <app_name>. Wanneer u hierom wordt gevraagd door cURL, typt u het wachtwoord.

curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy

Met deze aanvraag wordt push-implementatie geactiveerd vanuit het geüploade .zip-bestand. U kunt de huidige en eerdere implementaties bekijken met behulp van het https://<app_name>.scm.azurewebsites.net/api/deployments eindpunt, zoals wordt weergegeven in het volgende cURL-voorbeeld. <app_name> Vervang opnieuw door de naam van uw app en <deployment_user> door de gebruikersnaam van uw implementatiereferenties.

curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments

Asynchrone zip-distributie

Tijdens de synchrone implementatie kun je mogelijk fouten tegenkomen met betrekking tot verbindingstime-outs. Voeg ?isAsync=true toe aan de URL om asynchroon te implementeren. U ontvangt een antwoord zodra het zip-bestand is geüpload met een Location header die verwijst naar de URL van de pollable-implementatiestatus. Wanneer u de URL in de Location header pollt, ontvangt u een HTTP 202-antwoord (Geaccepteerd) terwijl het proces wordt uitgevoerd en een HTTP 200-antwoord (OK) wanneer het archief is uitgebreid en de implementatie is voltooid.

Microsoft Entra-verificatie

Een alternatief voor het gebruik van HTTP BASIC-verificatie voor de zip-implementatie is het gebruik van een Microsoft Entra-identiteit. Microsoft Entra-identiteit is mogelijk nodig als HTTP BASIC-verificatie is uitgeschakeld voor de SCM-site.

Een geldig Microsoft Entra-toegangstoken voor de gebruiker of service-principal die de implementatie uitvoert, is vereist. Een toegangstoken kan worden opgehaald met behulp van de azure CLI-opdracht az account get-access-token . Het toegangstoken wordt gebruikt in de verificatieheader van de HTTP POST-aanvraag.

curl -X POST \
    --data-binary "@<zip_file_path>" \
    -H "Authorization: Bearer <access_token>" \
    "https://<app_name>.scm.azurewebsites.net/api/zipdeploy"

Met PowerShell

In het volgende voorbeeld wordt gebruikgemaakt van Publish-AzWebapp om het .zip-bestand te uploaden. Vervang de tijdelijke aanduidingen <group-name>, <app-name>en <zip-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>

Met deze aanvraag wordt push-implementatie geactiveerd vanuit het geüploade .zip-bestand.

Voer de volgende opdrachten uit om de huidige en eerdere implementaties te controleren. Vervang opnieuw de placeholders <deployment-user>, <deployment-password> en <app-name>.

$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET

Deploy door Bicep of een Azure Resource Manager-sjabloon te gebruiken

Je kunt een pakket uitrollen naar een Flex Consumption-app als onderdeel van een Bicep- of Azure Resource Manager (ARM) template-deployment. Definieer een Microsoft.Web/sites/extensions-resource die de extensie /onedeploy gebruikt en de externe pakket-URL opgeeft in de eigenschap packageUri.

Je moet het pakketbestand released-package.zipnoemen. De Functions-host moet zowel de URL van het externe pakket als de deployment storage container kunnen benaderen. Het direct uploaden van het pakket naar de deployment container zorgt er niet voor dat het wordt gedeployt.

Voor voorbeelden van Bicep- en ARM-templates, zie Define the Flex Consumption deployment package.

Deploy door een Azure Resource Manager-template te gebruiken

Je kunt de Azure Resource Manager (ARM) template ZipDeploy-extensie gebruiken om je .zip-bestand naar je functie-app te pushen.

Voorbeeld van ZipDeploy ARM-sjabloon

Deze sjabloon bevat zowel een productie- als staging-slot en implementeert naar een van beide. Meestal gebruik je dit sjabloon om te deployen naar de staging-slot en wissel je daarna om je nieuwe zip-pakket op de productieslot te laten draaien.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServiceName": {
      "type": "string"
    },
    "deployToProduction": {
      "type": "bool",
      "defaultValue": false
    },
    "slot": {
      "type": "string",
      "defaultValue": "staging"
    },
    "packageUri": {
      "type": "secureString"
    }
  },
  "resources": [
    {
      "condition": "[parameters('deployToProduction')]",
      "type": "Microsoft.Web/sites/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    },
    {
      "condition": "[not(parameters('deployToProduction'))]",
      "type": "Microsoft.Web/sites/slots/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    }
  ]
}

Voor de eerste implementatie implementeer je rechtstreeks naar het productieslot. Voor meer informatie, zie Sleufimplementaties.

Functies uitvoeren vanuit het implementatiepakket

Direct uitvoeren vanuit het deploymentpakket slaat het kopiëren van bestanden in de wwwroot map over. In plaats daarvan koppelt de Functions-runtime het pakket aan als een alleen-lezen-wwwroot map. Deze aanpak:

  • Vermindert problemen met het vergrendelen van bestandskopieën.
  • Controleert de bestanden die worden uitgevoerd in uw app.
  • Verbetert de implementatieprestaties van Azure Resource Manager.
  • Kan de koude starttijd verkorten, vooral voor JavaScript-apps met grote npm-pakketbomen.

Flex Consumption-pakketconfiguratie

Flex Consumption-apps draaien standaard vanuit een pakket. Voeg de WEBSITE_RUN_FROM_PACKAGE app-instelling niet toe. Implementatie-instellingen, inclusief de opslagcontainer en de authenticatiemethode ervan, zijn eigenschappen van de functie-app-resource. Raadpleeg Implementatie voor meer informatie.

Premium- en Dedicated pakketconfiguratie

Stel WEBSITE_RUN_FROM_PACKAGE in op 1 om direct te draaien vanuit het lokaal geïnstalleerde pakket. De runtime slaat het pakket op in de map /home/data/SitePackages op Windows of in de map c:\home\data\SitePackages op Linux.

Consumptiepakketconfiguratie

De ondersteunde WEBSITE_RUN_FROM_PACKAGE waarde hangt af van het besturingssysteem:

besturingssysteem Value Gedrag
Windows 1 De app draait vanaf een pakket in de c:\home\data\SitePackages map.
Linux <URL> De app draait vanaf het pakket op de opgegeven URL. Gebruik een privé Azure Blob Storage-container die wordt benaderd door een beheerde identiteit te gebruiken.

Belangrijk

Functie-apps die nog steeds de end-of-life v3-runtime op Linux uitvoeren in een verbruiksabonnement, worden na 30 september 2026 niet meer uitgevoerd. Als u serviceonderbreking wilt voorkomen, migreert u uw app naar de v4-runtime.

De optie voor het hosten van functie-apps in Linux in een verbruiksabonnement wordt op 30 september 2028 buiten gebruik gesteld. Het Linux Consumption-abonnement krijgt geen nieuwe functies of taalversies. Apps die worden uitgevoerd op Windows in een verbruiksabonnement, worden momenteel niet beïnvloed. Migreer uw apps naar het Flex Consumption-abonnement vóór de buitengebruikstellingsdatum.

Overwegingen voor pakketimplementatie

Houd deze vereisten en beperkingen in gedachten wanneer je je functie-app vanuit een pakket deployt en uitvoert:

  • Het pakket moet .zip formaat gebruiken. Tar- en gzip-indelingen worden niet ondersteund.
  • De maximale pakketgrootte is 1 GB. De deployment gebruikt tijdelijke opslag bij het uitpakken van projectbestanden, dus de app moet ook over voldoende tijdelijke opslag beschikken. Het Consumption-plan biedt 500 MB tijdelijke opslag per plan.
  • Wanneer je een pakket uitvoert, zijn bestanden in wwwroot alleen-leesbaar, ook in de Azure-portal.
  • Je kunt de lokale cache niet gebruiken als je vanuit een pakket draait.
  • Stel het niet in WEBSITE_RUN_FROM_PACKAGE wanneer je een remote build aanvraagt. Stel SCM_DO_BUILD_DURING_DEPLOYMENT=truein plaats daarvan . Stel op Linux ook ENABLE_ORYX_BUILD=true in.
  • WEBSITE_RUN_FROM_PACKAGE werkt niet met MSDeploy. Gebruik in plaats daarvan zip deployment.

De WEBSITE_RUN_FROM_PACKAGE-instelling toevoegen

Er zijn verschillende manieren waarop u instellingen van een functie app kunt toevoegen, bijwerken en verwijderen:

Voor wijzigingen in de instellingen van de functie-app moet uw functie-app opnieuw worden gestart.

Uitvoeren vanaf een pakket dat door zip-deployment is geüpload

Stel WEBSITE_RUN_FROM_PACKAGE in op 1 voordat u het pakket implementeert. De zip-implementatie-API kopieert het pakket naar de SitePackages map in plaats van de inhoud uit te pakken naar wwwroot. De implementatie maakt ook een packagename.txt-bestand aan dat aangeeft welk pakket moet worden gekoppeld. Nadat de app opnieuw is opgestart, wordt het pakket gekoppeld als de alleen-lezen-map wwwroot. Linux Consumption-apps ondersteunen deze instelling niet en moeten in plaats daarvan draaien vanaf een externe pakket-URL.

Wanneer de implementatie de app opnieuw opstart, eindigen de momenteel draaiende functie-uitvoeringen. Voor informatie over het schrijven van functies die herstarts veilig afhandelen, zie Schrijf functies om toestandloos te zijn.

Uitvoeren vanuit een externe pakket-URL

Gebruik een externe pakket-URL wanneer je zelf pakketopslag moet beheren. Je hebt deze optie nodig om een lokaal gebouwd pakket uit te voeren op een Linux Consumption-app. Het wordt niet ondersteund op Flex Consumption.

Note

Je kunt een bestaande functie-app die gebruikt WEBSITE_RUN_FROM_PACKAGE=1 om te draaien vanaf een externe package URL niet veranderen. Om een externe pakket-URL te gebruiken, maak je een nieuwe functie-app aan en stel je WEBSITE_RUN_FROM_PACKAGE in op de pakket-URL.

Gebruik een privé Blob Storage-container en verleen de beheerde identiteit van de functie-app toegang tot het pakket. Gebruik een beheerde identiteit omdat SAS-tokens verlopen en onderhoud vereisen. Telkens wanneer je een bijgewerkt pakket publiceert, moet je triggers handmatig synchroniseren. Als je het pakket ter plaatse bijwerkt zonder de URL te wijzigen, start dan de functie-app opnieuw voordat je triggers synchroniseert.

Upload handmatig een pakket naar Azure Blob Storage

  1. Maak een .zip deployment-pakket.

  2. Ga in de Azure-portal naar uw opslagaccount.

  3. Selecteer onder GegevensopslagContainers en maak vervolgens een privécontainer of selecteer er een.

  4. Upload het pakket naar de container.

  5. Selecteer de geüploade blob en kopieer de URL. Als je geen managed identity gebruikt, genereer dan een SAS-URL.

  6. Vouw in je functie-app Instellingen uit, selecteer Omgevingsvariabelen en selecteer vervolgens Toevoegen op het tabblad App-instellingen .

  7. Voeg een instelling toe die met de pakket-URL als waarde wordt genoemd WEBSITE_RUN_FROM_PACKAGE .

  8. Pas de wijzigingen toe, start de app opnieuw op en synchroniseer triggers handmatig.

Haal een pakket op uit Azure Blob Storage door gebruik te maken van een beheerde identiteit

U kunt Azure Blob Storage configureren om aanvragen te autoriseren met Microsoft Entra-id. Deze configuratie betekent dat in plaats van een SAS-sleutel te genereren met een vervaldatum, u in plaats daarvan kunt vertrouwen op de beheerde identiteit van de toepassing.

Standaard wordt de door het systeem toegewezen identiteit van de app gebruikt. Als u een door de gebruiker toegewezen identiteit wilt opgeven, kunt u de WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID app-instelling instellen op de resource-id van die identiteit. De instelling kan ook accepteren SystemAssigned als een waarde, wat gelijk is aan het weglaten van de instelling.

Als u wilt dat het pakket wordt opgehaald met behulp van de identiteit:

  1. Zorg ervoor dat de blob is geconfigureerd voor privétoegang.

  2. Ken de identiteit de rol lezer van opslag-blobgegevens toe met toegang tot de pakketblob. Zie Een Azure-rol toewijzen voor toegang tot blob-gegevens voor meer informatie over het maken van de roltoewijzing.

  3. Stel de WEBSITE_RUN_FROM_PACKAGE toepassingsinstelling in op de blob-URL van het pakket. Deze URL is meestal van de vorm https://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package> of vergelijkbaar.

  4. Als u een door de gebruiker toegewezen identiteit wilt opgeven, kunt u de WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID app-instelling instellen op de resource-id van die identiteit. De instelling kan ook SystemAssigned als een waarde accepteren, hoewel dit hetzelfde is als het helemaal weglaten van de instelling. Een resource-id is een standaardweergave voor een resource in Azure. Voor een door de gebruiker toegewezen beheerde identiteit is dat /subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. De resource-id van een door de gebruiker toegewezen beheerde identiteit kan worden verkregen in de Instellingen>Eigenschappen>ID voor de door de gebruiker toegewezen beheerde identiteit.

Aanpassing van implementatie

Bij het implementatieproces wordt ervan uitgegaan dat het .zip-bestand dat u pusht een kant-en-klare app bevat. Standaard worden er geen aanpassingen uitgevoerd. Als u dezelfde buildprocessen wilt inschakelen die u krijgt met continue integratie, voegt u het volgende toe aan uw toepassingsinstellingen:

SCM_DO_BUILD_DURING_DEPLOYMENT=true

Wanneer u .zip push-implementatie gebruikt, staat deze instelling standaard uit. De standaardwaarde is waar voor continue integratie-implementaties. Als deze is ingesteld op true, worden uw implementatiegerelateerde instellingen gebruikt tijdens de implementatie. U kunt deze instellingen configureren als app-instellingen of in een .deployment-configuratiebestand dat zich in de hoofdmap van uw .zip-bestand bevindt. Zie Opslagplaats- en implementatie-gerelateerde instellingen in de implementatieverwijzing voor meer informatie.

Uw functie-app-bestanden downloaden

Als je het exacte pakket nodig hebt dat je app momenteel draait, download het dan uit de Blob Storage-container die is geconfigureerd voor de implementaties van je app:

  1. Op je functieapp-pagina in het Azure-portaal verbreed je Instellingen en selecteer je vervolgens Implementatie-instellingen.

  2. Let onder Applicatiepakketlocatie op het opslagaccount en de container die voor deployments worden gebruikt.

  3. Ga naar dat opslagaccount, vouw Gegevensopslag uit en selecteer vervolgens Containers.

  4. Selecteer de deployment container, selecteer het huidige pakket en selecteer vervolgens Downloaden.

Het gedownloade pakket bevat de content van de gebouwde app die je hebt uitgerold, wat kan verschillen van je bronproject. Elke deployment overschrijft het huidige pakket, en de deployment container geeft geen deploymentgeschiedenis.

Voor apps die worden geïmplementeerd met CI/CD, houd het bronproject in source control en bewaar ready-to-run build-artefacten volgens je release-retentiebeleid. Gebruik een behouden artefact om een specifieke release opnieuw te deployen. Gebruik het pakket in de deployment container wanneer je precies het pakket nodig hebt dat de app momenteel draait of wanneer het originele artefact niet meer beschikbaar is.

Uw functie-app-bestanden downloaden

Als u uw functies hebt gemaakt met behulp van de editor in Azure Portal, kunt u uw bestaande functie-app-project op een van de volgende manieren downloaden als een .zip-bestand:

  1. Meld u aan bij Azure Portal en ga vervolgens naar uw functie-app.

  2. Selecteer App-inhoud downloaden op het tabblad Overzicht. Selecteer uw downloadopties en klik op Downloaden.

Schermopname van de azure-portalpagina om het functie-app-project te downloaden.

Het gedownloade .zip-bestand heeft de juiste indeling om opnieuw te worden gepubliceerd naar uw functie-app met behulp van .zip push-implementatie. Het downloaden van de portal kan ook de bestanden toevoegen die nodig zijn om uw functie-app rechtstreeks in Visual Studio te openen.

Voor apps die worden geïmplementeerd met CI/CD, houd het bronproject in source control en bewaar ready-to-run build-artefacten volgens je release-retentiebeleid. Een bronarchief dat uit een repository is gedownload is geen deployment-pakket. Gebruik je deploymentworkflow om het project te bouwen en uit te zetten.