Continuous Deployment für Azure Functions
Mit Azure Functions können Sie die Änderungen, die in einem Repository für die Quellcodeverwaltung vorgenommen wurden, kontinuierlich in einer verbundenen Funktions-App bereitstellen. Die Integration der Quellcodeverwaltung ermöglicht einen Workflow, in dem ein Codeaktualisierung Build, Paketieren und Bereitstellen von Ihrem Projekt in Azure auslöst.
Sie sollten die kontinuierliche Bereitstellung für einen Stagingslot und nicht für den Produktionsplatz konfigurieren. Wenn Sie den Produktionsslot verwenden, werden Codeupdates direkt an die Produktion übertragen, ohne in Azure überprüft zu werden. Aktivieren Sie stattdessen die kontinuierliche Bereitstellung für einen Stagingslot, überprüfen Sie Updates im Staging-Slot, und nachdem alles ordnungsgemäß ausgeführt wurde, können Sie den Stagingslot-Code in die Produktion vertauschen. Wenn Sie eine Verbindung mit einem Produktionsslot herstellen, stellen Sie sicher, dass nur Produktionsqualitätscode in die integrierte Codeverzweigung eingebracht wird.
Die Schritte in diesem Artikel zeigen, wie Sie fortlaufende Codebereitstellungen für Ihre Funktions-App in Azure mithilfe des Bereitstellungscenters im Azure-Portal konfigurieren. Sie können auch die Continuous Integration mithilfe der Azure CLI konfigurieren. Diese Schritte können entweder auf einen Staging- oder einen Produktionsslot abzielen.
Funktionen unterstützen diese Quellen für das Continuous Deployment für Ihre App:
Verwalten Sie Ihren Projektcode in Azure Repos, einem der Dienste in Azure DevOps. Unterstützt die Git und Team Foundation-Versionskontrolle. Wird mit dem Azure Pipelines-Buildanbieter verwendet. Weitere Informationen finden Sie unter Was ist Azure Repos?
Sie können Ihre Funktions-App auch mit einem externen Git-Repository verbinden, dies erfordert jedoch eine manuelle Synchronisierung. Weitere Informationen zu Bereitstellungsoptionen finden Sie unter Bereitstellungstechnologien in Azure Functions.
Hinweis
Die in diesem Artikel behandelten Optionen für das Continuous Deployment sind spezifisch für Nur-Code-Bereitstellungen. Informationen zu Bereitstellungen containerisierter Funktionen finden Sie unter Aktivieren des Continuous Deployment von Containern in Azure.
Anforderungen
Die Bereitstellungseinheit für Funktionen in Azure ist die Funktions-App. Damit Continuous Deployment erfolgreich ausgeführt werden kann, muss die Verzeichnisstruktur Ihres Projekts mit der Basisordnerstruktur kompatibel sein, die von Azure Functions erwartet wird. Wenn Sie Ihr Codeprojekt mit Azure Functions Core Tools, Visual Studio Code oder Visual Studio erstellen, werden die Azure Functions-Vorlagen verwendet, um Codeprojekte mit der richtigen Verzeichnisstruktur zu erstellen. Alle Funktionen in einer Funktions-App werden gleichzeitig und im selben Paket bereitgestellt.
Nach Aktivierung von Continuous Deployment wird der Zugriff auf Funktionscode im Azure-Portal als schreibgeschützt konfiguriert, da die Source of Truth auf einen anderen Ort festgelegt ist.
Hinweis
Das Bereitstellungscenter unterstützt kein Continuous Deployment für eine Funktions-App mit eingehenden Netzwerkeinschränkungen. Stattdessen müssen Sie den Buildanbieter-Workflow direkt in GitHub oder Azure Pipelines konfigurieren. Diese Workflows erfordern auch, dass Sie einen virtuellen Computer im selben virtuellen Netzwerk wie die Funktions-App als selbst gehosteter Agent (Pipelines) oder einen selbst gehosteten Runner (GitHub)verwenden.
Auswählen eines Buildanbieters
Das Erstellen Ihres Codeprojekts ist Teil des Bereitstellungsprozesses. Der spezifische Buildprozess hängt von Ihrem spezifischen Sprachstapel, Betriebssystem und Hostingplan ab. Builds können lokal oder remote durchgeführt werden, je nach Ihrem spezifischen Hosting. Weitere Informationen finden Sie unter Remotebuild.
Wichtig
Für eine höhere Sicherheit sollten Sie einen Buildanbieter verwenden, der verwaltete Identitäten unterstützt, einschließlich Azure-Pipelines und Gitub-Aktionen. Der App Service (Kudu)-Dienst erfordert, dass Sie die grundlegende Authentifizierung aktivieren und mit textbasierten Anmeldeinformationen arbeiten.
Funktionen unterstützen diese Buildanbieter:
Azure Pipelines ist einer der Dienste in Azure DevOps und der Standardbuildanbieter für Azure Repos-Projekte. Sie können Pipelines auch verwenden, um Projekte von GitHub zu erstellen. In Pipelines gibt es eine AzureFunctionApp
Aufgabe, die speziell für die Bereitstellung in Azure Functions entwickelt wurde. Mit dieser Aufgabe können Sie steuern, wie das Projekt erstellt, gepackt und bereitgestellt wird. Unterstützung verwalteter Identitäten:
Beachten Sie die Stärken und Einschränkungen dieser Anbieter, wenn Sie die Integration der Quellcodeverwaltung aktivieren. Möglicherweise müssen Sie ihren Quelltyp Ihres Repositorys ändern, um einen bestimmten Anbieter nutzen zu können.
Konfigurieren von Continuous Deployment
Das Azure-Portal bietet ein Bereitstellungscenter für Ihre Funktions-Apps, wodurch die Konfiguration der kontinuierlichen Bereitstellung vereinfacht wird. Die spezifische Art und Weise, wie Sie Continuous Deployment konfigurieren, hängt sowohl von der Art des Repositorys für die Quellcodeverwaltung ab, in der sich Ihr Code befindet, als auch vom Buildanbieter, den Sie auswählen.
Navigieren Sie im Azure-Portal zu Ihrer Funktions-App-Seite, und wählen Sie im linken Bereich unter Bereich das Bereitstellungscenter aus.
Wählen Sie den Quell-Repositorytyp aus, in dem Ihr Projektcode aus einer der folgenden unterstützten Optionen verwaltet wird:
Bereitstellungen von Azure Repos, die Azure-Pipelines verwenden, werden im Azure DevOps-Portal und nicht aus Ihrer Funktions-App definiert. Eine schrittweise Anleitung zum Erstellen einer Pipeline-basierten Bereitstellung aus Azure Repos finden Sie unter Continuous Delivery mit Azure Pipelines.
Wenn die Bereitstellung abgeschlossen ist, wird der gesamte Code aus der angegebenen Quelle Ihrer App bereitgestellt. An diesem Punkt lösen Änderungen in der Bereitstellungsquelle eine Bereitstellung dieser Änderungen in Ihrer Funktions-App in Azure aus.
Aktivieren von Continuous Deployment während der App-Erstellung
Derzeit können Sie Continuous Deployment über GitHub mithilfe von GitHub Actions konfigurieren, wenn Sie Ihre Funktions-App im Azure-Portal erstellen. Dazu können Sie die Registerkarte Bereitstellung auf der Seite Funktions-App erstellen verwenden.
Wenn Sie eine andere Bereitstellungsquelle oder einen anderen Buildanbieter für Continuous Integration verwenden möchten, erstellen Sie zuerst Ihre Funktions-App, kehren Sie dann zum Portal zurück, und richten Sie Continuous Integration im Bereitstellungscenter ein.
Aktivieren der Standardauthentifizierung für Bereitstellungen
In manchen Fällen wird Ihre Funktions-App mit deaktiviertem Standardauthentifizierungszugriff auf den scm
-Endpunkt erstellt. Dadurch wird die Veröffentlichung von allen Methoden blockiert, die keine verwalteten Identitäten verwenden können, um auf den scm
-Endpunkt zuzugreifen. Die Auswirkungen der Veröffentlichung bei deaktiviertem scm
-Endpunkt sind unter Bereitstellung ohne Standardauthentifizierung ausführlich beschrieben.
Wichtig
Wenn Sie Standardauthentifizierung verwenden, werden Anmeldeinformationen als Klartext gesendet. Um diese Anmeldeinformationen zu schützen, dürfen Sie nur bei Verwendung der Standardauthentifizierung über eine verschlüsselte Verbindung (HTTPS) auf den scm
-Endpunkt zugreifen. Weitere Informationen finden Sie unter Sichere Bereitstellung.
So aktivieren Sie die Standardauthentifizierung für den scm
-Endpunkt
Navigieren Sie im Azure-Portal zu Ihrer Funktions-App.
Wählen Sie im linken Menü der App die Optionen Einstellungen>Konfiguration>Allgemeine Einstellungen aus.
Legen Sie Veröffentlichungsanmeldeinformationen für die SCM-Standardauthentifizierung auf Ein fest, und wählen Sie dann Speichern aus.