Bereitstellungstechnologien in Azure Functions

Sie können verschiedene Technologien verwenden, um Ihren Azure Functions Projektcode für Azure bereitzustellen. Dieser Artikel bietet eine Übersicht über die für Sie verfügbaren Bereitstellungsmethoden sowie Empfehlungen für in den jeweiligen verschiedenen Szenarien zu verwendende beste Methode. Darüber hinaus enthält sie eine umfassende Liste und wichtige Details zu den zugrunde liegenden Bereitstellungstechnologien.

Bereitstellungsmethoden

Die Bereitstellungstechnologie, die Sie zum Veröffentlichen von Code in Ihrer Funktions-App in Azure verwenden, hängt von Ihren spezifischen Anforderungen und dem Punkt im Entwicklungszyklus ab. Zum Beispiel können Sie während der Entwicklung und des Testens direkt von Ihrem Entwicklungstool wie Visual Studio Code aus bereitstellen. Wenn sich Ihre App in der Produktionsphase befindet, verwenden Sie zur kontinuierlichen Veröffentlichung wahrscheinlich eher die Quellcodeverwaltung oder eine automatisierte Veröffentlichungspipeline, die zusätzliche Validierungs- und Testvorgänge umfassen kann.

In der folgenden Tabelle werden die verfügbaren Bereitstellungsmethoden für Ihr Codeprojekt beschrieben.

Bereitstellungstyp Methoden Am besten geeignet für:
Toolsbasiert Azure CLI
Visual Studio Code veröffentlichen
Visual Studio veröffentlichen
Core Tools veröffentlichen
Bereitstellungen während der Entwicklung und andere improvisierte Bereitstellungen. Bereitstellen des Codes bei Bedarf mithilfe lokaler Entwicklungstools.
Von der Plattform verwaltet Einsatzzentrum (CI/CD)
Container-Einsätze
Continuous Deployment (CI/CD) aus der Quellcodeverwaltung oder aus einer Containerregistrierung. Die Hosting-Plattform verwaltet die Deployments.
Externe Pipelines Azure-Pipelines
GitHub-Aktionen
Produktionspipelinen, die Validierung, Tests und andere Aktionen umfassen, die als Teil einer automatisierten Bereitstellung ausgeführt werden müssen. Die Pipeline verwaltet Bereitstellungen.

Verwenden Sie die beste Technologie für Ihr spezifisches Szenario. Für unterstützte Hosting-Pläne verwenden viele der Bereitstellungsmethoden die Zip-Bereitstellung.

Bereitstellungstechnologie: Verfügbarkeit

Die Bereitstellungsmethode hängt auch von Ihrem Hostingplan sowie von dem Betriebssystem ab, unter dem Sie Ihre Funktions-App ausführen.

Derzeit bietet Functions fünf Optionen zum Hosten Ihrer Funktions-Apps:

Jeder Plan weist ein anderes Verhalten auf. Nicht alle Bereitstellungstechnologien sind für jeden Hostingplan und jedes Betriebssystem verfügbar. Im folgenden Diagramm finden Sie Informationen zu den unterstützten Bereitstellungstechnologien:

Bereitstellungstechnologie Flex-Verbrauch Nutzung Elastischer Aufpreis Dediziert Container-Apps
Bereitstellung des Flex Consumption-Pakets Unterstützt Nicht unterstützt Nicht unterstützt Nicht unterstützt Nicht unterstützt
ZIP-Bereitstellung Nicht unterstützt Unterstützt Unterstützt Unterstützt Nicht unterstützt
Externe Paket-URL1 Nicht unterstützt Unterstützt Unterstützt Unterstützt Nicht unterstützt
Container-Abbild (Docker) Nicht unterstützt Nur Linux Nur Linux Nur Linux Unterstützt
Quellcodeverwaltung Nicht unterstützt nur Windows Unterstützt Unterstützt Nicht unterstützt
Lokaler Git1 Nicht unterstützt nur Windows Unterstützt Unterstützt Nicht unterstützt
FTPS1 Nicht unterstützt nur Windows Unterstützt Unterstützt Nicht unterstützt
Bearbeitung im Portal2 Nicht unterstützt Unterstützt Unterstützt Unterstützt Nicht unterstützt
  1. Bereitstellungstechnologien, bei denen Sie Trigger manuell synchronisieren müssen, werden nicht empfohlen.
  2. Das Bearbeiten im Portal ist deaktiviert, wenn Code von außerhalb des Portals in deine Funktionsanwendung ausgerollt wird. Weitere Informationen, einschließlich Details zur Sprachunterstützung für die Bearbeitung im Portal, finden Sie unter Sprachunterstützungsdetails.

Wählen Sie Ihren Hosting-Plan oben in diesem Artikel aus, um die Bereitstellungstechnologien und -verhaltensweisen zu sehen, die für Ihre Arbeits-App gelten.

Wichtige Begriffe

Einige wichtige Konzepte sind wichtig, um zu verstehen, wie Bereitstellungen in Azure Functions funktionieren.

Speicherung von App-Inhalten nach Hosting-Tarif

Der Standort der bereitgestellten App-Inhalte hängt vom Hosting-Plan und der Bereitstellungstechnologie ab:

Hosting-Paket App-Inhaltsspeicher
Flex-Verbrauch Ein Blob-Deployment-Container, den du für die Funktions-App konfigurierst.
Verbrauchsbasiert, Elastic Premium und Dediziert Das App-Dateisystem, eine Azure Files-Inhaltsfreigabe oder eine externe Paket-URL, abhängig von der Bereitstellungstechnologie.
Azure Container Apps – ein Dienst für containerbasierte Anwendungen Ein Container-Abbild, das in einer Container-Registry gespeichert ist.

Triggersynchronisierung

Wenn eine Bereitstellung eine Funktion oder deren Trigger-Konfiguration hinzufügt, entfernt oder ändert, muss die Functions-Infrastruktur die Trigger-Metadaten der Funktions-App aktualisieren. Diese Synchronisation erfolgt automatisch bei vielen Bereitstellungstechnologien. Manchmal müssen die Trigger jedoch manuell synchronisiert werden.

Sie müssen Trigger immer manuell synchronisieren, wenn Sie diese Bereitstellungsoptionen verwenden:

Sie können Trigger auf eine der folgenden Arten manuell synchronisieren:

  • Starten Sie ihre Funktions-App im Azure-Portal neu. Der Functions-Host führt eine Synchronisierung des Hintergrundtriggers aus, nachdem die Anwendung gestartet wurde.

  • Verwenden Sie den Befehl az rest, um eine HTTP POST-Anforderung zu senden, die die syncfunctiontriggers-API aufruft, wie im folgenden Beispiel gezeigt:

    az rest --method post --url https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Web/sites/<APP_NAME>/syncfunctiontriggers?api-version=2016-08-01
    

Beachten Sie diese Überlegungen für den Synchronisierungsauslöservorgang:

  • Sie müssen Ihre Funktions-App jedes Mal manuell neu starten, wenn Sie eine aktualisierte Version des Bereitstellungspakets mithilfe derselben externen Paket-URL bereitstellen.
  • Für Apps, die in einem Verbrauchs- oder Elastic Premium-Plan ausgeführt werden, müssen Sie in diesen Szenarien auch trigger manuell synchronisieren :
    • Wenn Sie bei der Bereitstellung eine externe Paket-URL mit einer auf dem Ressourcen Manager basierenden Bereitstellung verwenden, indem Sie ARM-Vorlagen oder Bicep- oder Terraform-Dateien nutzen.
    • Wenn Sie das Paket für die Bereitstellung in-Place aktualisieren, indem Sie dieselbe externe Paket-URL verwenden.
  • Wenn Sie einer vorhandenen Funktions-App Netzwerkeinschränkungen hinzufügen, müssen Sie die Konnektivität mit dem standardmäßigen Hostspeicherkonto garantieren, das in der AzureWebJobsStorage App-Einstellung festgelegt ist. Weitere Informationen finden Sie unter How to use a secured storage account with Azure Functions.

Remotebuild

Sie können veranlassen, dass Azure Functions während der Bereitstellung einen Remotebuild Ihres Codeprojekts ausführt. Fordern Sie in diesen Szenarien einen Remotebuild an, anstatt lokal zu erstellen:

  • Sie stellen eine App in einer Linux-basierten Funktionsanwendung bereit, die Sie auf einem Windows-Computer entwickelt haben. Diese Situation ist in der Regel bei Python App-Entwicklung der Fall. Wenn Sie das Bereitstellungspaket lokal unter Windows erstellen, können dabei falsche Bibliotheken verwendet werden.
  • Ihr Projekt verfügt über Abhängigkeiten zu einem benutzerdefinierten Paketindex.
  • Sie möchten die Größe Ihres Bereitstellungspakets verringern.

Wie Sie einen Remotebuild anfordern, hängt davon ab, ob Ihre App in Azure auf Windows oder Linux ausgeführt wird.

Alle Funktions-Apps, die unter Windows laufen, haben eine begleitende Bereitstellungsseite. Diese Website behandelt einen Großteil der Bereitstellungs- und Buildlogik für Azure Functions.

Wenn Sie eine App für Windows bereitstellen, führt der Bereitstellungsprozess sprachspezifische Befehle aus, z. B. dotnet restore (C#) oder npm install (JavaScript).

Die folgenden Überlegungen gelten für die Verwendung von Remotebuilds während der Bereitstellung:

  • Remotebuilds werden für Funktions-Apps unterstützt, die unter Linux im Verbrauchsplan ausgeführt werden. Allerdings sind die Bereitstellungsoptionen für diese Apps begrenzt, da sie keinen Begleit-Bereitstellungsstandort haben.
  • Funktions-Apps, die unter Linux in einem Elastic Premium-Tarif oder einem dedizierten (App Service) Plan laufen, haben zwar eine begleitende Bereitstellungsseite, aber diese ist im Vergleich zu Windows begrenzt.
  • Setze WEBSITE_RUN_FROM_PACKAGE nicht, wenn du einen Remote-Build anforderst. Für Linux Consumption, Elastic Premium und dedizierte Plan-Apps aktivieren Sie stattdessen den Remote-Build, indem Sie die im Linux-Tab beschriebenen Deployment-Einstellungen verwenden. Der Deployment-Prozess kann die Build-Ausgabe paketieren und die App so konfigurieren, dass sie von diesem Paket aus läuft.
  • Möglicherweise treten Probleme mit dem Remotebuild auf, wenn Ihre App erstellt wurde, bevor das Feature verfügbar gemacht wurde (1. August 2019). Erstellen Sie für ältere Apps entweder eine neue Funktions-App, oder führen Sie az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> aus, um Ihre Funktions-App zu aktualisieren. Dieser Befehl kann zwei Versuche in Anspruch nehmen, bis er erfolgreich ist.

Remotebuild

Für Flex Consumption fordert man einen entfernten Build an, indem man beim Start der Bereitstellung einen entfernten Build-Parameter übergibt. Man konfiguriert den Remote-Build nicht über die Anwendungseinstellungen. Für Core Tools und Visual Studio Code wird beim Bereitstellen einer Python-App immer ein Remote-Build angefordert. Weitere Informationen finden Sie unter "Bereitstellung".

App-Inhaltsspeicher

Flex Consumption speichert das aktuelle Paket im konfigurierten Deployment-Speichercontainer. Standardmäßig befindet sich dieser Container im selben Konto, das von verwendet wird AzureWebJobsStorage, aber Sie können ein anderes Deployment-Speicherkonto konfigurieren.

Wichtig

Das Speicherkonto wird verwendet, um wichtige App-Daten zu speichern, manchmal einschließlich des Anwendungscodes. Sie sollten den Zugriff von anderen Anwendungen und benutzenden Personen auf das Speicherkonto einschränken.

App-Inhaltsspeicher

Je nach Bereitstellungstechnologie können Ihre App-Inhalte im App-Dateisystem, in einer Azure Files-Inhaltsfreigabe oder auf einer externen Paket-URL gespeichert werden. Überprüfen Sie , wo App-Inhalte für jede Bereitstellungstechnologie gespeichert sind, im nächsten Abschnitt.

Wichtig

Das Speicherkonto wird verwendet, um wichtige App-Daten zu speichern, manchmal einschließlich des Anwendungscodes. Sie sollten den Zugriff von anderen Anwendungen und benutzenden Personen auf das Speicherkonto einschränken.

Gesicherte virtuelle Netzwerke

Wenn deine Funktions-App private Endpunkte aktiviert und der öffentliche Netzwerkzugang deaktiviert ist, ist der Deployment-Endpunkt nicht öffentlich erreichbar. Push-Deployment-Tools, darunter Core Tools, Visual Studio Code, Azure CLI, GitHub Actions und Azure Pipelines, senden Pakete an diesen Endpunkt. Die Maschine, der Runner oder der Agent, die bzw. der die Bereitstellung durchführt, muss sowohl Netzwerkzugriff auf den privaten Bereitstellungsendpunkt haben als auch ihn per DNS auflösen können.

Sie können diese Konnektivität auf folgende Weise bereitstellen:

Die Bereitstellungsressource kann sich im selben virtuellen Netzwerk oder in einem Netzwerk befinden, das über Routing- und DNS-Konnektivität zum privaten Endpunkt verfügt, beispielsweise in einem virtuellen Netzwerk mit Peering.

Resource Manager-basierte Paket-Deployments übertragen das Paket nicht vom initiierenden Client zum Deployment-Endpunkt. Stattdessen ruft der Bereitstellungsdienst das Paket aus der in der Bereitstellungsressource angegebenen URL ab. Die Paket-URL und der Bereitstellungsspeicher müssen für den Bereitstellungsdienst zugänglich sein. Für Flex Consumption siehe Deployen mit Bicep oder einer Azure Resource Manager-Vorlage.

Weitere Informationen zum Konfigurieren Ihrer Funktions-App in einem virtuellen Netzwerk finden Sie unter Wie sie Azure Functions mit einem virtuellen Netzwerk konfigurieren.

Speicherung und Netzwerk von App-Inhalten

Azure Functions on Azure Container Apps stellt Ihre App als Container-Image bereit. Das Image wird in einer Container-Registry gespeichert, und das Netzwerk wird von der Container Apps-Umgebung verwaltet. Weitere Informationen finden Sie unter Azure Functions in Azure Container Apps – Übersicht und Netzwerkfunktionen in Azure Container Apps.

Bereitstellungsverhalten nach Hosting-Plan

Die folgenden Bereitstellungsmethoden gelten für Ihren gewählten Hosting-Plan. Um Technologien über alle Pläne hinweg zu vergleichen, siehe die Tabelle zur Verfügbarkeit von Bereitstellungstechnologien .

Bereitstellung des Flex Consumption-Pakets

Die Paketbereitstellung ist die einzige Code-Deployment-Technologie, die für Apps im Flex Consumption-Plan unterstützt wird. Der Bereitstellungsprozess speichert ein betriebsbereites .zip-Paket im Bereitstellungscontainer der App, und die Funktions-App läuft direkt von diesem Paket aus.

So verwenden Sie es: Bereitstellen durch Nutzung der Veröffentlichungsfunktion von Visual Studio Code, oder von der Befehlszeile aus mithilfe der Azure Functions Core Tools oder des Azure CLI. Die Azure DevOps-Aufgabe und die GitHub-Aktion wählen ähnlich das richtige Verhalten der Paketbereitstellung, wenn sie eine Flex-Consumption-App erkennen.

Wenn Sie eine Flex-Verbrauchs-App erstellen, müssen Sie einen Speichercontainer (Blob) für die Bereitstellung sowie eine Authentifizierungsmethode angeben. Standardmäßig wird dasselbe Speicherkonto wie die AzureWebJobsStorage-Verbindung verwendet, wobei eine Verbindungszeichenfolge als Authentifizierungsmethode verwendet wird. Daher werden Ihre Bereitstellungseinstellungen während der App-Erstellung konfiguriert, ohne dass Anwendungseinstellungen erforderlich sind.

Wann wird dies verwendet: Verwenden Sie die Paketbereitstellung für alle Codebereitstellungen für Flex Consumption. Keine andere Code-Deployment-Technologie wird unterstützt.

Speicherort von App-Inhalten: Wenn Sie eine Funktions-App mit Flex-Verbrauchs-Plan erstellen, geben Sie einen Speichercontainer für die Bereitstellung an. Der Bereitstellungsdienst speichert das verarbeitete, betriebsbereite Paket in diesem Container. Push-Deployment-Tools senden zuerst das Quellpaket an den Deployment-Endpunkt der App; sie laden nicht direkt in den Deployment-Container hoch. Um den Speicherort zu ändern, öffnen Sie die Seite Bereitstellungseinstellungen im Azure-Portal oder verwenden Sie die Azure CLI.

Die zugrunde liegende Plattform-API wird manchmal als OneDeploybezeichnet. Infrastructure-as-Code-Definitionen stellen diese Implementierung über den wörtlichen /onedeploy Ressourcennamen offen. Sie müssen diese API nicht auswählen oder konfigurieren, wenn Sie mit unterstützten Entwicklungstools oder CI/CD-Anbietern bereitstellen.

Tipp

Ein Flex Consumption Deployment Diagnosetool ist im Azure-Portal verfügbar. Öffnen Sie Ihre Flex Consumption-App, wählen Sie "Diagnostizieren und Lösen von Problemen" aus, und suchen Sie nach Flex Consumption Deployment. Dieses Tool zeigt detaillierte Informationen zu Ihren Bereitstellungen an, einschließlich Bereitstellungsverlauf, Paketstatus und Problembehandlungsempfehlungen.

ZIP-Bereitstellung

Die ZIP-Bereitstellung ist die Standard- und empfohlene Bereitstellungstechnologie für Funktionsanwendungen in den Plänen Consumption, Elastic Premium und Dedicated (App Service). Das Endergebnis ist ein ausführungsbereites ZIP-Paket, in dem Ihre Funktions-App ausgeführt wird. Es unterscheidet sich von der externen Paket-URL darin, dass die Plattform für die Remoteerstellung und das Speichern Von App-Inhalten verantwortlich ist.

Wie man es verwendet: Deployen Sie mit Ihrem bevorzugten Client-Tool: Visual Studio Code, Visual Studio oder über die Kommandozeile über Azure Functions Core Tools oder die Azure CLI. Die Azure DevOps-Aufgabe und GitHub Action verwenden ähnlich ZIP-Deployment.

Wenn du ZIP-Deployment verwendest, kannst du deine App so einstellen, dass sie aus dem Paket läuft. Zur Ausführung über ein Paket legen Sie den Wert der Anwendungseinstellung WEBSITE_RUN_FROM_PACKAGE auf 1 fest. Wir empfehlen eine ZIP-Bereitstellung. Es sorgt für schnellere Ladezeiten für deine Anwendungen und ist der Standard für Visual Studio Code, Visual Studio und die Azure CLI.

Wann sollte man es verwenden: ZIP-Deployment ist die Standard- und empfohlene Bereitstellungstechnologie für Funktions-Apps in den Plänen Windows Consumption, Windows und Linux Elastic Premium sowie Windows und Linux App Service (Dedicated).

Wo App-Inhalte gespeichert werden: App-Inhalte aus einer ZIP-Bereitstellung werden standardmäßig im Dateisystem gespeichert, was Azure möglicherweise durch Azure Files aus dem Speicherkonto sichert, das Sie beim Erstellen der Funktions-App angegeben haben. In Linux-Verbrauch wird der App-Inhalt stattdessen auf einem Blob in dem Storage-Konto persistiert, das durch die AzureWebJobsStorage App-Einstellung festgelegt wurde, und die App-Einstellung WEBSITE_RUN_FROM_PACKAGE übernimmt den Wert der Blob-URL.

Externe Paket-URL

Verwenden Sie eine externe Paket-URL, wenn Sie manuell steuern möchten, wie Deployments ablaufen. Du bist dafür verantwortlich, ein startfertiges .zip-Paket hochzuladen, das deine erstellte App-Inhalte in den Blob-Speicher enthält, und diese externe URL als Anwendungseinstellung in deiner Funktions-App zu referenzieren. Immer wenn deine App neu startet, holt sie das Paket, mountet es und läuft von dort aus.

Verwendung: Fügen Sie Ihren Anwendungseinstellungen WEBSITE_RUN_FROM_PACKAGE hinzu. Der Wert dieser Einstellung sollte eine Blob-URL sein, die auf den Speicherort des spezifischen Pakets zeigt, das Ihre App ausführen soll. Sie können Einstellungen entweder im Portal hinzufügen oder mithilfe der Azure CLI hinzufügen.

Wenn Sie Azure Blob Storage verwenden, kann Ihre Funktions-App entweder über eine verwaltete, identitätsbasierte Verbindung oder mit einer Shared Access Signature (SAS) auf den Container zugreifen. Die von Ihnen ausgewählte Option wirkt sich darauf aus, welche Art von URL Sie als Wert für WEBSITE_RUN_FROM_PACKAGE verwenden. Verwaltete Identitäten werden für die allgemeine Sicherheit empfohlen. Außerdem müssen SAS-Token, da sie ablaufen, manuell verwaltet werden.

Wenn Sie die Paketdatei bereitstellen, auf die eine Funktions-App verweist, müssen Sie Auslöser manuell synchronisieren, einschließlich der ersten Bereitstellung. Wenn Sie den Inhalt der Paketdatei ändern und nicht die URL selbst, müssen Sie auch Ihre Funktions-App neu starten, um die Auslöser zu synchronisieren. Für Konfigurationsschritte siehe Ausführen über die URL eines externen Pakets.

Anwendungsfälle: Die URL des externen Pakets ist die einzige unterstützte Bereitstellungsmethode für Apps, die unter Linux mit Verbrauchs-Plan ausgeführt werden, wenn kein Remotebuild ausgeführt werden soll. Diese Methode ist auch die empfohlene Bereitstellungstechnologie, wenn Sie Ihre App create your app ohne Azure Files erstellen. Für skalierbare Apps, die unter Linux ausgeführt werden, sollten Sie stattdessen für das Hosting den Flex-Verbrauchs-Plans in Betracht ziehen.

Speicherort von App-Inhalten: Sie sind für das Hochladen von App-Inhalten in Blob Storage verantwortlich. Du kannst jedes Blob Storage-Konto verwenden, allerdings wird Azure Blob Storage empfohlen.

Docker-Container

Sie können eine Funktions-App bereitstellen, die in einem Linux-Container ausgeführt wird.

Wie sie verwendet werden kann: Erstellen Sie Ihre Funktionen in einem Linux-Container stellen Sie dann den Container in einem Premium- oder Dedizierten Plan in Azure Functions oder einem anderen Containerhost bereit. Verwenden Sie die Azure Functions Core Tools, um eine benutzerdefinierte Dockerfile-Datei für Ihr Projekt zu erstellen, die Sie zum Erstellen einer containerisierten Funktions-App verwenden. Sie können den Container in den folgenden Bereitstellungen verwenden:

Einsatzgebiete: Verwenden Sie die Option „Docker-Container“, wenn Sie mehr Kontrolle über die Linux-Umgebung benötigen, in der Ihre Funktions-App ausgeführt wird und in der der Container gehostet ist. Dieser Bereitstellungsmechanismus steht nur für Funktionen unter Linux zur Verfügung.

Wo App-Inhalte gespeichert werden: Sie speichern App-Inhalte in der angegebenen Containerregistrierung als Teil des Images.

Quellcodeverwaltung

Sie können die kontinuierliche Integration zwischen Ihrer Funktions-App und einem Quellcode-Repository aktivieren. Wenn Sie die Quellcodeverwaltung aktivieren, löst eine Aktualisierung des Codes im verbundenen Quell-Repository die Bereitstellung des neuesten Codes aus dem Repository aus. Weitere Informationen finden Sie in der kontinuierlichen Bereitstellung für Azure Functions.

Verwendung : Die einfachste Möglichkeit zum Einrichten der Veröffentlichung aus der Quellcodeverwaltung stammt aus dem Bereitstellungscenter im Bereich "Funktionen" des Portals. Weitere Informationen finden Sie unter Continuous deployment for Azure Functions.

Einsatzgebiete: Die Verwendung von Quellcodeverwaltung ist die bewährte Methode für Teams, die an ihren Funktions-Apps zusammenarbeiten. Quellcodeverwaltung ist eine gute Bereitstellungsoption, die anspruchsvollere Bereitstellungspipelines ermöglicht. In der Regel aktivieren Sie die Quellcodeverwaltung auf einem Stagingplatz, den Sie nach der Überprüfung von Updates aus dem Repository in die Produktion tauschen können. Weitere Informationen finden Sie unter Azure Functions Deployment Slots.

Wo App-Inhalte gespeichert werden: Das Quellcodeverwaltungssystem speichert den App-Inhalt. Das App-Dateisystem speichert ein lokal geklontes und erstelltes App-Inhaltsformular, das Azure Files aus dem Storage-Konto, das bei der Erstellung der Funktions-App angegeben wurde, zurückgeben könnte.

Lokales Git

Verwenden Sie lokale Git, um Code von Ihrem lokalen Computer mithilfe von Git an Azure Functions zu übertragen.

Wie verwenden Sie es: Befolgen Sie die Anweisungen unter Lokale Git-Bereitstellung zu Azure App Service.

Wann sie verwendet werden soll: Um die Wahrscheinlichkeit von Fehlern zu verringern, vermeiden Sie die Verwendung von Bereitstellungsmethoden, die den zusätzlichen Schritt der manuellen Synchronisierung von Triggern erfordern. Verwenden Sie nach Möglichkeit die ZIP-Bereitstellung.

Wo App-Inhalte gespeichert werden: Das Dateisystem speichert App-Inhalte. Das Dateisystem wird möglicherweise durch Azure Files aus dem Speicherkonto unterstützt, das Sie beim Erstellen der Funktions-App angeben.

FTPS

Du kannst FTPS verwenden, um Dateien direkt in Azure Functions zu übertragen, aber verwende diese Bereitstellungsmethode nicht. Wenn du nicht vorhast, FTPS zu verwenden, deaktiviere es. Informationen dazu finden Sie im Azure-Portal unter Enforce FTPS.

So verwenden Sie sie: Befolgen Sie die Anweisungen in den FTPS-Bereitstellungseinstellungen , um die URL und Anmeldeinformationen abzurufen, die Sie für die Bereitstellung in Ihrer Funktions-App mithilfe von FTPS verwenden können.

Wann sie verwendet werden soll: Um die Wahrscheinlichkeit von Fehlern zu verringern, vermeiden Sie die Verwendung von Bereitstellungsmethoden, die den zusätzlichen Schritt der manuellen Synchronisierung von Triggern erfordern. Verwenden Sie nach Möglichkeit die ZIP-Bereitstellung.

Wo App-Inhalte gespeichert werden: App-Inhalte werden im Dateisystem gespeichert. FTP/FTPS-Bereitstellungen schlagen fehl, wenn das Dateisystem Ihrer App durch Azure Files im Standardspeicherkonto des Host unterstützt wird. FTP/FTPS schlägt mit Azure Files als eingehängtem Speicher aufgrund von FTP-Einschränkungen fehl.

Bearbeitung im Portal

Im portalbasierten Editor können Sie die Dateien, die sich in ihrer Funktions-App befinden, direkt bearbeiten (im Wesentlichen erfolgt die Bereitstellung bei jedem Speichern der Änderungen).

Wie Sie es verwenden: Um Ihre Funktionen im Azure-Portal zu bearbeiten, müssen Sie Ihre Funktionen im Portal erstellen. Bei Verwendung einer anderen Bereitstellungsmethode wird Ihre Funktion schreibgeschützt und kann nicht mehr über das Portal bearbeitet werden, um eine zentrale zuverlässige Datenquelle (Single Source Of Truth, SSOT) zu gewährleisten. Um zu einem Zustand zurückzukehren, in dem Sie Ihre Dateien im Azure-Portal bearbeiten können, können Sie den Bearbeitungsmodus manuell auf Read/Write zurücksetzen und alle bereitstellungsbezogenen Anwendungseinstellungen (z. B. WEBSITE_RUN_FROM_PACKAGE) entfernen.

Wann verwenden: Das Portal ist eine gute Möglichkeit, um mit Azure Functions zu beginnen. Aufgrund Entwicklungseinschränkungen im Azure Portal sollten Sie eines der folgenden Clienttools verwenden, um erweiterte Entwicklungsaufgaben zu erledigen:

Wo App-Inhalte gespeichert sind: App-Inhalte werden im Dateisystem gespeichert, die möglicherweise von Azure Files aus dem Speicherkonto gesichert werden, das Sie beim Erstellen der Funktions-App angeben.

Bereitstellung von Container-Images

Azure Functions in Azure Container Apps stellt Ihren Code als Container-Image bereit. Sie können aus einem Codeprojekt über die Managed Container Apps Experience deployen oder ein benutzerdefiniertes Image bereitstellen, wenn Sie Kontrolle über den Image-Inhalt benötigen. Weitere Informationen finden Sie unter Erstellen einer Funktions-App in Azure Container Apps mit Code und Übersicht über Azure Functions in Azure Container Apps.

Bereitstellungsverhalten

Wenn du Updates für den Code deiner Funktions-App bereitstellst, hängt das Bereitstellungsverhalten von deinem Hosting-Plan ab.

Derzeit ausgeführte Funktionen werden beendet, wenn Sie neuen Code bereitstellen. Nach Abschluss der Bereitstellung lädt der neue Code und beginnt mit der Verarbeitung von Anfragen. Dieses gewaltsame Kündigungsverhalten wird als Wiederholungsstrategie bezeichnet. Für nahezu null Ausfallzeiten nutze Deployment-Slots.

Lesen Sie Verbessern Sie die Leistung und Zuverlässigkeit von Azure Functions, um zu lernen, wie man zustandslose und defensive Funktionen schreibt.

Das Standardverhalten verwendet die Recreate-Strategie, die die aktuell ausführende Funktionen während der Bereitstellung stoppt. Flex Consumption unterstützt zwei Strategien zur Website-Aktualisierung. Sie können rollierende Updates für Bereitstellungen ohne Ausfallzeiten konfigurieren.

Azure Container Apps verwaltet Anwendungsupdates mithilfe von Revisionen. Für weitere Informationen zur Kontrolle, wie neue Versionen den Datenverkehr empfangen, siehe Änderungen aktualisieren und bereitstellen in Azure Container Apps.

Bereitstellungsslots

Flex Consumption unterstützt keine Deployment-Slots. Für Bereitstellungen ohne Ausfallzeiten konfigurieren Sie rollierende Updates.

Bereitstellungsslots

Wenn Sie Ihre Funktions-App in Azure bereitstellen, können Sie als Bereitstellungsziel einen separaten Bereitstellungsslot verwenden, anstatt die Bereitstellung direkt in der Produktionsumgebung vorzunehmen. Die Bereitstellung auf einem Bereitstellungsplatz und das anschließende Austauschen in die Produktion nach der Überprüfung ist die empfohlene Methode zum Konfigurieren der kontinuierlichen Bereitstellung.

Die Art und Weise, wie Sie auf einem Slot bereitstellen, hängt von dem jeweiligen Bereitstellungstool ab, das Sie verwenden. Wenn Sie zum Beispiel Azure Functions Core Tools verwenden, fügen Sie die --slot Option hinzu, den Namen eines bestimmten Slots für den func azure functionapp publish Befehl anzugeben.

Weitere Informationen zu Bereitstellungsplätzen finden Sie in der Dokumentation Azure Functions Deployment Slots.

Nächste Schritte

Weitere Informationen zum Bereitstellen von Funktions-Apps finden Sie in den folgenden Artikeln: