Udostępnij za pośrednictwem


Model zasobów aplikacji usługi Service Fabric

Istnieje wiele opcji wdrażania aplikacji usługi Azure Service Fabric w klastrze usługi Service Fabric. Zalecamy korzystanie z usługi Azure Resource Manager. Jeśli używasz usługi Resource Manager, możesz opisać aplikacje i usługi w formacie JSON, a następnie wdrożyć je w tym samym szablonie usługi Resource Manager co klaster. W przeciwieństwie do używania programu PowerShell lub interfejsu wiersza polecenia platformy Azure do wdrażania aplikacji i zarządzania nimi, jeśli używasz usługi Resource Manager, nie musisz czekać, aż klaster będzie gotowy; Rejestracja aplikacji, aprowizowanie i wdrażanie mogą odbywać się w jednym kroku. Korzystanie z usługi Resource Manager to najlepszy sposób zarządzania cyklem życia aplikacji w klastrze. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania: infrastruktura jako kod.

Zarządzanie aplikacjami jako zasobami w usłudze Resource Manager może pomóc w uzyskaniu ulepszeń w następujących obszarach:

  • Dziennik inspekcji: usługa Resource Manager przeprowadza inspekcję każdej operacji i przechowuje szczegółowy dziennik aktywności. Dziennik aktywności może pomóc w śledzeniu wszelkich zmian wprowadzonych w aplikacjach i w klastrze.
  • Kontrola dostępu oparta na rolach: dostęp do klastrów i aplikacji wdrożonych w klastrze można zarządzać przy użyciu tego samego szablonu usługi Resource Manager.
  • Wydajność zarządzania: użycie usługi Resource Manager zapewnia jedną lokalizację (witrynę Azure Portal) do zarządzania klastrem i krytycznymi wdrożeniami aplikacji.

Z tego dokumentu dowiesz się, jak wykonywać następujące działania:

  • Wdrażanie zasobów aplikacji przy użyciu usługi Resource Manager.
  • Uaktualnij zasoby aplikacji przy użyciu usługi Resource Manager.
  • Usuwanie zasobów aplikacji.

Wdrażanie zasobów aplikacji

Ogólne kroki, które należy wykonać w celu wdrożenia aplikacji i jej usług przy użyciu modelu zasobów aplikacji usługi Resource Manager, to:

  1. Spakuj kod aplikacji.
  2. Przekaż pakiet.
  3. Odwołuj się do lokalizacji pakietu w szablonie usługi Resource Manager jako zasobu aplikacji.

Aby uzyskać więcej informacji, zobacz Tworzenie pakietu aplikacji.

Następnie utworzysz szablon usługi Resource Manager, zaktualizujesz plik parametrów przy użyciu szczegółów aplikacji i wdrożysz szablon w klastrze usługi Service Fabric. Zapoznaj się z przykładami.

Tworzenie konta magazynu

Aby wdrożyć aplikację na podstawie szablonu usługi Resource Manager, musisz mieć konto magazynu. Konto magazynu służy do przygotowania obrazu aplikacji.

Możesz użyć istniejącego konta magazynu lub utworzyć nowe konto magazynu na potrzeby przemieszczania aplikacji. Jeśli używasz istniejącego konta magazynu, możesz pominąć ten krok.

Tworzenie konta magazynu

Konfigurowanie konta magazynu

Po utworzeniu konta magazynu utworzysz kontener obiektów blob, w którym można przygotować aplikacje. W witrynie Azure Portal przejdź do konta usługi Azure Storage, na którym chcesz przechowywać aplikacje. Wybierz pozycję Obiekty blob>Dodaj kontener.

Zasoby w klastrze można zabezpieczyć, ustawiając poziom dostępu publicznego na prywatny. Dostęp można udzielić na wiele sposobów:

Na poniższym zrzucie ekranu użyto anonimowego dostępu do odczytu dla obiektów blob.

Tworzenie obiektu blob

Przygotowywanie aplikacji na koncie magazynu

Przed wdrożeniem aplikacji należy przygotować aplikację w magazynie obiektów blob. W tym samouczku ręcznie utworzymy pakiet aplikacji. Należy pamiętać, że ten krok można zautomatyzować. Aby uzyskać więcej informacji, zobacz Pakowanie aplikacji.

W tym samouczku użyjemy przykładowej aplikacji Voting.

  1. W programie Visual Studio kliknij prawym przyciskiem myszy projekt Voting , a następnie wybierz pozycję Pakiet.

    Aplikacja pakietu

  2. Przejdź do katalogu .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Spakuj zawartość do pliku o nazwie Voting.zip. Plik ApplicationManifest.xml powinien znajdować się w katalogu głównym w pliku zip.

    Aplikacja zip

  3. Zmień nazwę pliku, aby zmienić rozszerzenie z .zip na .sfpkg.

  4. W witrynie Azure Portal w kontenerze aplikacji dla konta magazynu wybierz pozycję Przekaż, a następnie przekaż plik Voting.sfpkg.

    Przekazywanie pakietu aplikacji

Teraz aplikacja jest teraz etapowa i można utworzyć szablon usługi Resource Manager w celu wdrożenia aplikacji.

Tworzenie szablonu usługi Resource Manager

Przykładowa aplikacja zawiera szablony usługi Azure Resource Manager, których można użyć do wdrożenia aplikacji. Nazwy plików szablonu są UserApp.json i UserApp.Parameters.json.

Uwaga

Plik UserApp.Parameters.json musi zostać zaktualizowany o nazwę klastra.

Parametr Opis Przykład Komentarze
clusterName Nazwa wdrażanego klastra sf-cluster123
aplikacja Nazwa aplikacji Voting (Głosowanie)
applicationTypeName Nazwa typu aplikacji VotingType Musi być zgodna z ApplicationManifest.xml
applicationTypeVersion Wersja typu aplikacji 1.0.0 Musi być zgodna z ApplicationManifest.xml
serviceName Nazwa usługi Voting~VotingWeb Musi być w formacie ApplicationName~ServiceType
serviceTypeName Nazwa typu usługi VotingWeb Musi być zgodna z ServiceManifest.xml
appPackageUrl Adres URL magazynu obiektów blob aplikacji https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg Adres URL pakietu aplikacji w usłudze Blob Storage (procedura ustawiania adresu URL jest opisana w dalszej części artykułu)
{
    "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')]"
}

Wdrażanie aplikacji

Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby wdrożyć aplikację w grupie zasobów zawierającej klaster:

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

Uaktualnianie aplikacji usługi Service Fabric przy użyciu usługi Resource Manager

Ważne

Każda usługa wdrażana za pośrednictwem definicji JSON usługi ARM musi zostać usunięta z sekcji DefaultServices odpowiedniego pliku ApplicationManifest.xml.

Możesz uaktualnić aplikację, która została już wdrożona w klastrze usługi Service Fabric z jednego z następujących powodów:

  • Nowa usługa jest dodawana do aplikacji. Definicja usługi musi zostać dodana do plików service-manifest.xml i application-manifest.xml po dodaniu usługi do aplikacji. Aby odzwierciedlić nową wersję aplikacji, należy również zmienić wersję typu aplikacji z 1.0.0 na 1.0.1 w UserApp.Parameters.json:

    "applicationTypeVersion": {
        "value": "1.0.1"
    },
    "serviceName2": {
        "value": "Voting~VotingData"
    },
    "serviceTypeName2": {
        "value": "VotingDataType"
    }
    
  • Nowa wersja istniejącej usługi jest dodawana do aplikacji. Przykłady obejmują zmiany kodu aplikacji i aktualizacje wersji i nazwy typu aplikacji. W przypadku tego uaktualnienia zaktualizuj UserApp.Parameters.json w następujący sposób:

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

Usuwanie zasobów aplikacji

Aby usunąć aplikację wdrożoną przy użyciu modelu zasobów aplikacji w usłudze Resource Manager:

  1. Użyj polecenia cmdlet Get-AzResource, aby uzyskać identyfikator zasobu dla aplikacji:

    Get-AzResource  -Name <String> | f1
    
  2. Użyj polecenia cmdlet Remove-AzResource, aby usunąć zasoby aplikacji:

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

Typowe pytania i odpowiedzi

Błąd: "Nazwa aplikacji musi być prefiksem nazwy usługi" Odpowiedź: Upewnij się, że nazwa usługi jest sformatowana w następujący sposób: ProfileVetSF~CallTicketDataWebApi.

Następne kroki

Uzyskaj informacje o modelu zasobów aplikacji: