Ich habe ein CI-Build für eine Service-Fabric-Anwendung in Visual Studio Team Service konfiguriert, nach dieser Dokumentation: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-set-up-continuous-integrationWie stelle ich die Service Fabric-Anwendung aus der VSTS-Release-Pipeline bereit?
Aber anstatt mein CI Build mit dem Verlag tun, ich den Build and Package Aufgaben nur erfüllen, und alle Service Fabric-bezogenen Ausgaben wie pkg-Ordner, Skripts, Veröffentlichungsprofile und Anwendungsparameter in die Ablage einschließen. Auf diese Weise kann ich sie an die neue Release-Pipeline (Agenten-basierte Releases) weitergeben, um die eigentliche Bereitstellung meiner Service-Fabric-Anwendung durchzuführen.
In meiner Release-Definition habe ich eine einzelne Azure Powershell-Task, die einen ARM-Endpunkt verwendet (mit den richtigen konfigurierten Service-Principals).
Wenn ich meine Anwendung in einem vorhandenen Service-Fabric-Cluster implementiere, verwende ich das standardmäßige Deploy-FabricApplication-Cmdlet, das den pkg-Ordner und ein Veröffentlichungsprofil übermittelt, das mit einer Verbindung zum vorhandenen Cluster konfiguriert ist.
Die Veröffentlichung schlägt mit der Fehlermeldung "Clusterverbindungsinstanz ist null" fehl. Und ich kann nicht verstehen warum?
Doing einige Debuggen Ich habe festgestellt, dass: Der Deploy-FabricApplication Cmdlet Connect-ServiceFabricCluster Cmdlets ganz gut ausgeführt wird, aber sobald die Publish-NewServiceFabricApplication Cmdlets Ausführung übernimmt, dann wird der Cluster-Verbindung verloren geht.
Ich würde erwarten, dass dieses Szenario mithilfe der Service-Fabric-Cmdlets möglich ist, aber ich kann nicht herausfinden, wie die Cluster-Verbindung während der Abholung geöffnet bleibt.
UPDATE: Der Link zur Dokumentation bezieht sich nicht mehr auf die Powershell-Skripts von Service Fabric, daher ist die Voraussetzung für diese Frage nicht mehr dokumentiert. Der Artikel bezieht sich nun auf die Build- und Release-Aufgaben von VSTS, die den Powershell-Cmdlets vorgezogen werden können, die ich zu verwenden versuchte.
Können Sie die Fehlerprotokolle teilen? Ist es immer vorgekommen? Und welchen Agenten benutzen Sie? Normalerweise sollte die Clusterverbindung nicht verloren gehen, wenn Publish-NewServiceFabricApplication ausgeführt wird. –