Freigeben über


Service Fabric: Anwendungsressourcenmodell

Sie haben für die Bereitstellung von Azure Service Fabric-Anwendungen in Ihrem 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 Anwendungsressourcen mithilfe von Resource Manager
  • Aktualisieren von Anwendungsressourcen mithilfe von Resource Manager
  • Löschen von Anwendungsressourcen

Bereitstellen von 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.

Erstellen Sie dann eine Resource Manager-Vorlage, aktualisieren Sie die Parameterdatei mit Anwendungsdetails, und stellen Sie die Vorlage im 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.

Speicherkonto erstellen

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.

Ressourcen in Ihrem Cluster können geschützt werden, indem die öffentliche Zugriffsebene auf privat festgelegt wird. Sie können auf verschiedene Arten Zugriff gewähren:

Das Beispiel im folgenden Screenshot verwendet den anonymen Lesezugriff für Blobs.

Erstellen des Blobs

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.

    Packen der Anwendung

  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.

    Zippen der Anwendung

  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.

    Hochladen des App-Pakets

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
applicationTypeName Der Typname der Anwendung VotingType Muss „ApplicationManifest.xml“ entsprechen
applicationTypeVersion Die Version des Anwendungstyps 1.0.0 Muss „ApplicationManifest.xml“ entsprechen
serviceName Der Name des Diensts Voting~VotingWeb Muss im Format „ApplicationName~ServiceType“ vorliegen.
serviceTypeName Der Typname des Diensts VotingWeb 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": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applicationTypes/versions",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationTypeName'), '/', parameters('applicationTypeVersion'))]",
    "location": "[variables('clusterLocation')]",
},
{
    "apiVersion": "2019-03-01",
    "type": "Microsoft.ServiceFabric/clusters/applications/services",
    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'), '/', parameters('serviceName'))]",
    "location": "[variables('clusterLocation')]"
}

Bereitstellen der 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

Per ARM-JSON-Definition bereitgestellte Dienste müssen aus dem Abschnitt „DefaultServices“ der entsprechenden Datei „ApplicationManifest.xml“ 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": "Voting~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 Anwendungsressourcen

So löschen Sie eine 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. Löschen Sie die Anwendungsressourcen mit dem Cmdlet Remove-AzResource:

    Remove-AzResource  -ResourceId <String> [-Force] [-ApiVersion <String>]
    

Häufig gestellte Fragen und Antworten

Fehler: „Anwendungsname muss ein Präfix des Dienstnamens sein“ Antwort: Stellen Sie sicher, dass der Dienstname wie folgt formatiert ist: ProfileVetSF~CallTicketDataWebApi.

Nächste Schritte

Weitere Informationen zum Anwendungsressourcenmodell: