Share via


Verwalten des Anwendungslebenszyklus in einem verwalteten Cluster mit Azure Resource Manager

Sie haben für die Bereitstellung von Azure Service Fabric-Anwendungen in Ihrem verwalteten Service Fabric-Cluster mehrere Optionen. Es wird empfohlen, Azure Resource Manager zu verwenden. Bei Verwenden von Resource Manager können Anwendungen und Dienste in JSON beschrieben und anschließend in der gleichen Resource Manager-Vorlage wie der Cluster bereitgestellt werden. Im Unterschied zur Verwendung von PowerShell oder Azure CLI zur Bereitstellung und Verwaltung von Anwendungen müssen Sie bei Einsatz von Resource Manager nicht darauf warten, dass der Cluster bereit ist. Die Registrierung und Bereitstellung von Anwendungen kann in einem Schritt erfolgen. Resource Manager ist die beste Möglichkeit, den Anwendungslebenszyklus in Ihrem Cluster zu verwalten. Weitere Informationen finden Sie unter Bewährte Methoden: Infrastructure-as-Code.

Das Verwalten Ihrer Anwendungen als Ressourcen in Resource Manager kann Ihnen helfen, Verbesserungen in diesen Bereichen zu erzielen:

  • Überwachungsprotokoll: Resource Manager überwacht jeden Vorgang und führt ein detailliertes Aktivitätsprotokoll. Ein Aktivitätsprotokoll kann Ihnen helfen, alle Änderungen an den Anwendungen und Ihrem Cluster nachzuverfolgen.
  • Rollenbasierte Zugriffssteuerung: Sie können den Zugriff auf Cluster und Anwendungen, die im Cluster bereitgestellt werden, mit derselben Resource Manager-Vorlage verwalten.
  • Effizienz der Verwaltung: Dank Resource Manager haben Sie eine Zentrale (das Azure-Portal) für die Verwaltung Ihres Clusters und Ihrer kritischen Anwendungsbereitstellungen.

In diesem Dokument erfahren Sie Folgendes:

  • Bereitstellen von Service Fabric-Anwendungsressourcen mithilfe von Resource Manager
  • Durchführen eines Upgrades von Service Fabric-Anwendungsressourcen mithilfe von Resource Manager
  • Löschen von Service Fabric-Anwendungsressourcen

Bereitstellen von Service Fabric-Anwendungsressourcen

Die allgemeinen Schritte, um eine Anwendung und ihre Dienste mithilfe des Anwendungsressourcenmodells von Resource Manager bereitzustellen, sind wie folgt:

  1. Packen des Anwendungscodes
  2. Hochladen des Pakets
  3. Verweisen auf den Speicherort des Pakets in einer Resource Manager-Vorlage als Anwendungsressource

Weitere Informationen finden Sie unter Packen einer Anwendung.

Danach erstellen Sie eine Resource Manager-Vorlage, aktualisieren die Parameterdatei mit Anwendungsdetails und stellen die Vorlage im verwalteten Service Fabric-Cluster bereit. Erkunden Sie Beispiele.

Speicherkonto erstellen

Um eine Anwendung anhand einer Resource Manager-Vorlage bereitzustellen, müssen Sie über ein Speicherkonto verfügen. Das Speicherkonto wird für das Staging des Anwendungsimages verwendet.

Sie können ein vorhandenes Speicherkonto wiederverwenden oder für das Staging Ihrer Anwendungen ein neues Speicherkonto erstellen. Wenn Sie ein vorhandenes Speicherkonto verwenden, können Sie diesen Schritt überspringen.

Create a storage account

Achtung

Der anonyme öffentliche Zugriff auf Blobdaten in Ihrem Speicherkonto stellt ein Sicherheitsrisiko dar. Beim Erstellen eines Speicherkontos wird empfohlen, den anonymen öffentlichen Zugriff auf Blobdaten auf Kontoebene zu deaktivieren, indem Sie die Eigenschaft AllowBlobPublicAccess auf false festlegen. Weitere Informationen finden Sie unter Korrigieren des anonymen öffentlichen Lesezugriffs auf Blobdaten (Azure Resource Manager-Bereitstellungen).

Konfigurieren des Speicherkontos

Nach dem Erstellen des Speicherkontos müssen Sie einen Blobcontainer erstellen, in dem das Staging der Anwendungen erfolgen kann. Wechseln Sie im Azure-Portal zum Azure Storage-Konto, in dem Sie Ihre Anwendungen speichern möchten. Wählen Sie Blobs>Container hinzufügen aus.

Sie können Zugriff auf den Container auf eine der folgenden Arten gewähren:

  • Sie können eine Azure RBAC-Rolle zuweisen, die einem Sicherheitsprinzipal Berechtigungen für den Container erteilt, sodass dieser Sicherheitsprinzipal über die Microsoft Entra-Autorisierung auf Daten im Container zugreifen kann. Weitere Informationen finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.
  • Sie können den Zugriff auf den Container mit einer Shared Access Signature delegieren, um einem Client für einen begrenzten Zeitraum und mit bestimmten Berechtigungen Zugriff auf Blobs im Container zu gewähren. Weitere Informationen finden Sie unter Gewähren von eingeschränktem Zugriff auf Azure Storage-Ressourcen mithilfe von SAS (Shared Access Signature).
  • Sie können die Kontozugriffsschlüssel verwenden, um den Zugriff auf Blobdaten zu autorisieren. Dieses Verfahren ist der unsicherste und wird daher nicht empfohlen.

Staging der Anwendung in einem Speicherkonto

Bevor Sie eine Anwendung bereitstellen können, müssen Sie die Anwendung in Blob Storage stagen. In diesem Tutorial wird das Anwendungspaket manuell erstellt. Beachten Sie, dass dieser Schritt automatisiert werden kann. Weitere Informationen finden Sie unter Packen einer Anwendung.

In diesem Tutorial verwenden wir die Beispielanwendung „Voting“.

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf das Projekt Voting, und wählen Sie dann Packen aus.

    Package Application

  2. Wechseln Sie zum Verzeichnis .\service-fabric-dotnet-quickstart\Voting\pkg\Debug. Zippen Sie den Inhalt in eine Datei mit dem Namen Voting.zip. Die Datei ApplicationManifest.xml muss sich im Stammverzeichnis der ZIP-Datei befinden.

    Zip Application

  3. Benennen Sie die Erweiterung der Datei von „.zip“ in .sfpkg um.

  4. Klicken Sie im Azure-Portal im Container Apps Ihres Speicherkontos auf Hochladen, und laden Sie dann Voting.sfpkg hoch.

    Upload App Package

Nachdem das Staging für die Anwendung erfolgt ist, können Sie die Resource Manager-Vorlage für die Bereitstellung der Anwendung erstellen.

Erstellen der Resource Manager-Vorlage

Die Beispielanwendung enthält Azure Resource Manager-Vorlagen, die Sie zum Bereitstellen der Anwendung verwenden können. Die Vorlagendateien heißen UserApp.json und UserApp.Parameters.json.

Hinweis

Die Datei UserApp.Parameters.json muss mit dem Namen Ihres Clusters aktualisiert werden.

Parameter BESCHREIBUNG Beispiel Kommentare
clusterName Der Name des Clusters, in dem die Bereitstellung erfolgt sf-cluster123
application Der Name der Anwendung. Voting
version Die Ressourcen-ID, der Anwendungstyp und die Version der App /providers/Microsoft.ServiceFabric/managedClusters/sf-cluster-123/applicationTypes/VotingType/versions/1.0.0 Muss „ApplicationManifest.xml“ entsprechen
serviceName Der Name des Diensts VotingWeb Muss das Format „ServiceType“ haben
serviceTypeName Der Typname des Diensts VotingWebType Muss „ServiceManifest.xml“ entsprechen
appPackageUrl Die Blob Storage-URL der Anwendung https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg Die URL des Anwendungspakets in Blob Storage (die Schritte zur Festlegung der URL werden weiter unten in diesem Artikel beschrieben)
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2021-05-01",
    "type": "Microsoft.ServiceFabric/managedclusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

Bereitstellen der Service Fabric-Anwendung

Führen Sie das Cmdlet New-AzResourceGroupDeployment aus, um die Anwendung in der Ressourcengruppe bereitzustellen, die Ihren Cluster enthält:

New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose

Aktualisieren der Service Fabric-Anwendung mithilfe von Azure Resource Manager

Wichtig

Alle Dienste, die über eine ARM-Vorlage (Azure Resource Manager) bereitgestellt wurden, müssen aus dem Abschnitt „DefaultServices“ der entsprechenden ApplicationManifest.xml-Datei entfernt werden.

Sie müssen eine Anwendung, die bereits in einem Service Fabric-Cluster bereitgestellt wurde, ggf. aus einem dieser Gründe aktualisieren:

  • Der Anwendung wird ein neuer Dienst hinzugefügt. Den Dateien service-manifest.xml und application-manifest.xml muss eine Dienstdefinition hinzugefügt werden, wenn ein Dienst zur Anwendung hinzugefügt wird. Um eine neue Version einer Anwendung widerzuspiegeln, müssen Sie auch in UserApp.Parameters.json die Version des Anwendungstyps von 1.0.0 in 1.0.1 ändern:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • Eine neue Version eines vorhandenen Diensts wird der Anwendung hinzugefügt. Beispiele umfassen Änderungen am Anwendungscode sowie Aktualisierungen von Typversion und Namen der App. Aktualisieren Sie für dieses Upgrade „UserApp.Parameters.json“ wie folgt:

     "applicationTypeVersion": {
        "value": "1.0.1"
    }
    

Löschen von Service Fabric-Anwendungsressourcen

Hinweis

Anwendungen sollten nicht über eine ARM-Vorlage (Azure Resource Manager) gelöscht werden, da es keine deklarative Möglichkeit gibt, einzelne Ressourcen zu bereinigen.

So löschen Sie eine Service Fabric-Anwendung, die mithilfe des Anwendungsressourcenmodells in Resource Manager bereitgestellt wurde:

  1. Rufen Sie mit dem Cmdlet Get-AzResource die Ressourcen-ID für die Anwendung ab:

    Get-AzResource  -Name <String> | f1
    
  2. Verwenden Sie das Cmdlet Remove-AzServiceFabricApplication, um die Anwendungsressourcen zu löschen:

    Remove-AzServiceFabricApplication -ResourceId <String> [-Force]
    

Migration von klassischen zu verwalteten Clustern

Wenn Sie Anwendungen von klassischen zu verwalteten Clustern migrieren, müssen Sie sicherstellen, dass die Typen richtig angegeben sind, da sonst Fehler auftreten.

Die folgenden Elemente werden aufgrund ihrer häufigen Verwendung besonders hervorgehoben, sind aber nicht als ausschließliche Liste von Unterschieden zu verstehen.

  • „upgradeReplicaSetCheckTimeout“ ist jetzt eine ganze Zahl für verwaltete Cluster, jedoch eine Zeichenfolge im klassischen SFRP-Cluster.

Eine umfassende Liste mit Eigenschaften und Typen finden Sie unter Ressourcentypen für Anwendungen für verwaltete Cluster.

Nächste Schritte

Erfahren Sie mehr über die Bereitstellung einer verwalteten Clusteranwendung: