Blog

Erstellung einer quelloffenen VSTS Build & Release Aufgabe für Azure Web App Virtual File System

Geert van der Cruijsen

Aktualisiert Oktober 21, 2025
4 Minuten

Ich habe eine neue VSTS Build & Release-Aufgabe erstellt, die Sie bei der Interaktion mit der (VFS) Virtual File System API (Teil der KUDU API Ihrer Azure Web App) unterstützt. Derzeit kann diese Aufgabe nur dazu verwendet werden, bestimmte Dateien oder Verzeichnisse während Ihres Build- oder Release-Workflows aus der Web App zu löschen. Sie wird in naher Zukunft aktualisiert, um auch Dateien aufzulisten oder Dateien über die VFS-API hoch- bzw. herunterzuladen . Der Grund, warum ich diese Aufgabe erstellt habe, ist, dass ich sie bei meinem aktuellen Kunden benötige. Wir stellen unsere benutzerdefinierte Lösung auf einer Sitecore-Website bereit, die auf Azure Web Apps unter Verwendung von MSDeploy läuft. Die Bereitstellung besteht aus 2 Teilen: einer Installation der Standard-Sitecore-Installation und der Bereitstellung unserer Anpassungen. Bei der Bereitstellung neuer Versionen möchten wir die Sitecore-Installation beibehalten und MSDeploy aktualisiert die meisten unserer Anpassungen. Einige Anpassungen erzeugen jedoch Artefakte, die auf dem Server verbleiben und nicht unter der Kontrolle des MSDeploy-Pakets stehen, was zu Fehlern in unserer Webanwendung führen kann. Diese neue VSTS Build / Release Aufgabe kann Ihnen helfen, diese Dateien zu löschen. In Zukunft wird diese Aufgabe mit anderen Funktionen der VFS-API aktualisiert werden, z.B. Auflisten, Hochladen oder Herunterladen von Dateien. Die Aufgabe ist im VSTS Marketplace verfügbar und ist Open Source auf github. Schauen wir uns an, wie diese Aufgabe verwendet wird und wie sie unter der Haube funktioniert.

 

Verwendung der Aufgabe

Wie löschen wir also Dateien mit dieser Aufgabe? (Hinweis: Wenn Sie alle Dateien innerhalb einer Webanwendung löschen möchten, bevor Sie einen MSDeploy durchführen, sollten Sie das Kontrollkästchen "Zusätzliche Dateien am Zielort entfernen" in der erweiterten Gruppe der Azure Web Deploy-Aufgabe aktivieren. Diese Aufgabe ist dafür gedacht, bestimmte Dateien oder Ordner zu löschenDie Verwendung der Aufgabe ist recht einfach. Installieren Sie die Aufgabe vom Marketplace, fügen Sie sie zu Ihrem Workflow hinzu und füllen Sie die folgenden Felder aus:

  • Azure-Abonnement (wählen Sie Ihre Azure RM-Verbindung)
  • App Service Name (wählen Sie die Web-App aus, bei der Sie Dateien löschen möchten)
  • Datei-URL (geben Sie die Datei-URL innerhalb des wwwroot ein, die Sie löschen möchten. Verwenden Sie für Verzeichnisse einen Pfad, der auf / endet)

fügen Sie optional die folgenden Parameter hinzu

  • Rekursives Löschen (Standard EIN, wenn Sie ein Verzeichnis auswählen, werden auch alle Dateien und Verzeichnisse in diesem Verzeichnis gelöscht)
  • Nicht existierenden Pfad überspringen (Wenn die Datei oder das Verzeichnis nicht mehr existiert, wird kein Fehler ausgegeben, sondern fortgefahren)
  • Erlauben Sie selbst signierte Zertifikate(verwenden Sie dies nur, wenn Sie in einem ASE arbeiten und Ihre eigenen Zertifikate haben)
  • Alternative Kudu-URL (Wenn Sie in ASE arbeiten und die SCM-URL anders lautet, geben Sie hier die genaue URL ein)

 

Die Aufgabe unter der Haube

Unter der Haube verwendet diese Aufgabe die VFS API. Den vollständigen Quellcode finden Sie auf meinem Github, aber ich werde hier nur die wichtigsten Powershell-Funktionen nennen. Die Funktion Remove-FileFromWebApp ist die Hauptfunktion, die von der Build-Aufgabe aufgerufen wird. Diese Funktion prüft, ob der Dateipfad ein Verzeichnis oder eine Datei ist. Wenn es sich um ein Verzeichnis handelt, wird geprüft, ob das rekursive Löschen aktiviert ist. Ist dies der Fall, wird die Funktion rekursiv aufgerufen, um jede Datei innerhalb des Verzeichnisses einschließlich der Unterverzeichnisse zu löschen. Danach konstruieren wir die VFS API Url, die wir zum Löschen der Datei aufrufen werden. Die verbleibenden 2 Codeblöcke. 1 führt den eigentlichen Aufruf der API über Invoke-RestMethod durch, aber vorher prüfen wir, ob die erweiterte Option "Selbstsignierte Zertifikate zulassen" aktiviert ist. Wenn dies der Fall ist, erstellen wir zunächst eine neue Richtlinie und fügen sie hinzu, bevor wir den eigentlichen Aufruf durchführen. Diese Version ist die erste Version dieser Aufgabe. Der Code zum Auflisten von Dateien aus der API wird bereits verwendet, um die Rekursion durchzuführen. Die API unterstützt auch das Hoch- und Herunterladen von Dateien, so dass ich in naher Zukunft auch dafür Aufgaben hinzufügen werde. Wenn Sie Feedback oder Funktionswünsche haben, lassen Sie es mich in einem Kommentar unten wissen oder kontaktieren Sie mich auf meinem Twitter Happy Coding, Building & Releasing Geert van der Cruijsen The post Created an open source VSTS build & release task for Azure Web App Virtual File System appeared first on Mobile First Cloud First.

Verfasst von

Geert van der Cruijsen

Contact

Let’s discuss how we can support your journey.