Bereitstellen der App in Azure App Service mithilfe von FTP/S

In diesem Artikel erfahren Sie, wie Sie eine Web-App, das mobile App-Back-End oder eine API-App mithilfe von FTP oder FTPS in Azure App Service bereitstellen.

Der FTP/S-Endpunkt für Ihre App ist bereits aktiv. Zum Aktivieren der FTP/S-Bereitstellung ist keine Konfiguration erforderlich.

Hinweis

Wenn die Standard-FTP-Authentifizierung deaktiviert ist, funktioniert die FTP/S-Bereitstellung nicht, und Sie können keine FTP-Anmeldeinformationen im Bereitstellungscenter der App anzeigen oder konfigurieren.

Abrufen der Anmeldeinformationen für die Bereitstellung

  1. Befolgen Sie die Anweisungen unter Konfigurieren von Anmeldeinformationen für die Azure App Service-Bereitstellung., um die Anmeldeinformationen für den Anwendungsbereich zu kopieren oder die Anmeldeinformationen für den Benutzerbereich festzulegen. Sie können mit beiden Arten von Anmeldeinformationen eine Verbindung mit dem FTP/S-Endpunkt der App herstellen.

  2. Erstellen Sie den FTP-Benutzernamen abhängig von der Auswahl des Bereichs der Anmeldeinformationen im folgenden Format:

    Anwendungsbereich Benutzerbereich
    <app-name>\$<app-name> <app-name>\<deployment-user>

    In App Service wird der FTP/S-Endpunkt von Apps gemeinsam genutzt. Da die Anmeldeinformationen für den Benutzerbereich nicht mit einer bestimmten Ressource verknüpft sind, müssen Sie dem Benutzernamen im Benutzerbereich den App-Namen voranstellen, wie oben gezeigt.

Abrufen des FTP/S-Endpunkts

Kopieren Sie den FTPS-Endpunkt auf derselben Verwaltungsseite für die App, auf der Sie die Anmeldeinformationen für die Bereitstellung kopiert haben (Bereitstellungscenter>FTPS-Anmeldeinformationen).

Bereitstellen von Dateien in Azure

  1. Verwenden Sie in Ihrem FTP-Client (z.B. Visual Studio, Cyberduck oder WinSCP) die gesammelten Verbindungsinformationen, um eine Verbindung mit Ihrer App herzustellen.
  2. Kopieren Sie Ihre Dateien und die entsprechende Verzeichnisstruktur in das Verzeichnis /site/wwwroot in Azure (bzw. für WebJobs in das Verzeichnis /site/wwwroot/App_Data/Jobs/ ).
  3. Navigieren Sie zur URL Ihrer App, um sicherzustellen, dass die Anwendung richtig ausgeführt wird.

Hinweis

Im Gegensatz zu Git-basierten Bereitstellungen und ZIP-Bereitstellungen unterstützt die FTP-Bereitstellung keine Buildautomatisierung, z. B.:

  • Wiederherstellungen der Abhängigkeit (z.B. NuGet-, NPM-, PIP- oder Composer-Automatisierungen)
  • Kompilierung von .NET-Binärdateien
  • Generierung von „web.config“ (hier sehen Sie ein Node.js-Beispiel)

Generieren Sie diese erforderlichen Dateien auf Ihrem lokalen Computer manuell, und stellen Sie sie zusammen mit Ihrer App bereit.

Erzwingen von FTPS

Aus Sicherheitsgründen sollten Sie nur FTP über TLS/SSL zulassen. Sie können auch FTP und FTPS deaktivieren, wenn Sie keine FTP-Bereitstellung verwenden.

  1. Wählen Sie auf der Ressourcenseite Ihrer App im Azure-Portal im linken Navigationsbereich Konfiguration>Allgemeine Einstellungen aus.

  2. Um unverschlüsselte FTP-Verbindungen zu deaktivieren, aktivieren Sie Nur FTPS unter FTP-Zustand. Um FTP und FTPS vollständig zu deaktivieren, wählen Sie Deaktiviert aus. Wenn Sie fertig sind, wählen Sie Speichern aus. Bei Verwendung von Nur FTPS müssen Sie die Verwendung von TLS 1.2 oder höher erzwingen, indem Sie zur Seite mit den TLS/SSL-Einstellungen Ihrer Web-App navigieren. TLS 1.0 und 1.1 werden für Nur FTPS nicht unterstützt.

    Disable FTP/S

Was geschieht während der Bereitstellung mit meiner App?

Alle offiziell unterstützten Bereitstellungsmethoden nehmen Änderungen an den Dateien im Ordner /home/site/wwwroot Ihrer App vor. Diese Dateien werden zum Ausführen Ihrer App verwendet. Daher kann die Bereitstellung aufgrund gesperrter Dateien fehlschlagen. Die App kann sich während der Bereitstellung unvorhersehbar verhalten, da nicht alle Dateien gleichzeitig aktualisiert werden. Dieses Verhalten ist bei kundenorientierten Apps nicht erwünscht. Es gibt mehrere Möglichkeiten zum Umgehen dieser Probleme:

Problembehandlung bei der FTP-Bereitstellung

Wie behebe ich Probleme bei der FTP-Bereitstellung?

Der erste Schritt in der Problembehandlung bei der FTP-Bereitstellung besteht darin, ein Bereitstellungsproblem von einem Laufzeitproblem der Anwendung zu trennen.

Bereitstellungsprobleme führen in der Regel dazu, dass für Ihre Anwendung keine oder die falschen Dateien bereitgestellt werden. Sie können dies durch Untersuchen Ihrer FTP-Bereitstellung oder Auswählen einer alternativen Bereitstellungsmethode (z.B. Quellcodeverwaltung) beheben.

Laufzeitprobleme der Anwendung führen in der Regel dazu, dass die richtigen Dateien für Ihre App bereitgestellt werden, die App jedoch ein falsches Verhalten aufweist. Sie können dies beheben, indem Sie sich auf das Codeverhalten zur Laufzeit konzentrieren und spezifische Fehlerpfade untersuchen.

Weitere Informationen zur Ermittlung, ob es sich um ein Bereitstellungs- oder Laufzeitproblem handelt, finden Sie unter Probleme mit Bereitstellung oder Laufzeit.

Ich kann meinen Code nicht mit FTP erreichen und veröffentlichen. Wie kann ich das Problem beheben?

Vergewissern Sie sich, dass Sie den richtigen Hostnamen und die richtigen Anmeldeinformationen eingegeben haben. Stellen Sie auch sicher, dass die folgenden FTP-Ports auf dem Computer nicht durch eine Firewall blockiert werden:

  • Port für FTP-Kontrollverbindung:
  • Port für FTP-Datenverbindung: 989, 10001–10300

Wie kann ich in Azure App Service über den passiven Modus eine Verbindung mit FTP herstellen?

Azure App Service unterstützt das Herstellen einer Verbindung im aktiven und passiven Modus. Der passive Modus wird bevorzugt, da sich Bereitstellungscomputer in der Regel hinter einer Firewall (im Betriebssystem oder als Teil eines Heim- oder Firmennetzwerks) befinden. Weitere Informationen finden Sie in einem Beispiel in der WinSCP-Dokumentation.

Warum schlägt meine Verbindung fehl, wenn versucht wird, eine Verbindung über FTPS mithilfe einer expliziten Verschlüsselung herzustellen?

FTPS ermöglicht das Herstellen der sicheren TLS-Verbindung auf explizite oder implizite Weise.

  • Wenn Sie eine Verbindung mit impliziter Verschlüsselung herstellen, wird die Verbindung über Port 990 hergestellt.
  • Wenn Sie eine Verbindung mit expliziter Verschlüsselung herstellen, wird die Verbindung über Port 21 hergestellt.

Das verwendete URL-Format kann sich auf den Verbindungserfolg auswirken. Dieser hängt auch von der verwendeten Clientanwendung ab. Das Portal zeigt die URL als ftps:// an, beachten Sie jedoch:

  • Wenn die URL, mit der Sie eine Verbindung herstellen, mit ftp:// beginnt, wird davon ausgegangen, dass die Verbindung über Port 21 hergestellt wird.
  • Wenn sie mit ftps:// beginnt, wird davon ausgegangen, dass die Verbindung implizit ist und über Port 990 erfolgt.

Stellen Sie sicher, dass Sie die beiden Optionen nicht kombinieren, also z. B. nicht versuchen, eine Verbindung mit ftps:// herzustellen und Port 21 zu verwenden, da die Verbindung nicht hergestellt werden kann, auch wenn Sie explizite Verschlüsselung ausführen möchten. Der Grund dafür ist, dass eine explizite Verbindung vor der AUTH-Methode als einfache FTP-Verbindung gestartet wird.

Wie kann ich die Methode ermitteln, die zum Bereitstellen von Azure App Service verwendet wurde?

Sie können durch Überprüfen der Anwendungseinstellungen ermitteln, wie eine App bereitgestellt wurde. Wenn die App mit einer externen Paket-URL bereitgestellt wurde, sollte die Einstellung WEBSITE_RUN_FROM_PACKAGE in den Anwendungseinstellungen mit einem URL-Wert angezeigt werden. Wurde sie durch die Bereitstellung eines ZIP-Pakets bereitgestellt, sollte die Einstellung WEBSITE_RUN_FROM_PACKAGE mit dem Wert 1 angezeigt werden. Wenn die App mit Azure DevOps bereitgestellt wurde, sollte der Bereitstellungsverlauf im Azure DevOps-Portal angezeigt werden. Wenn Azure Functions Core Tools verwendet wurde,sollte der Bereitstellungsverlauf im Azure-Portal angezeigt werden.

Weitere Ressourcen