Hantera programlivscykeln i ett hanterat kluster med Hjälp av Azure Resource Manager
Du har flera alternativ för att distribuera Azure Service Fabric-program i ditt Service Fabric-hanterade kluster. Vi rekommenderar att du använder Azure Resource Manager. Om du använder Resource Manager kan du beskriva program och tjänster i JSON och sedan distribuera dem i samma Resource Manager-mall som klustret. Till skillnad från att använda PowerShell eller Azure CLI för att distribuera och hantera program behöver du inte vänta tills klustret är klart om du använder Resource Manager. programregistrering, etablering och distribution kan ske i ett enda steg. Att använda Resource Manager är det bästa sättet att hantera programmets livscykel i klustret. Mer information finns i Metodtips: Infrastruktur som kod.
Att hantera dina program som resurser i Resource Manager kan hjälpa dig att få förbättringar inom följande områden:
- Spårningslogg: Resource Manager granskar varje åtgärd och behåller en detaljerad aktivitetslogg. En aktivitetslogg kan hjälpa dig att spåra ändringar som gjorts i programmen och i klustret.
- Rollbaserad åtkomstkontroll: Du kan hantera åtkomst till kluster och till program som distribueras i klustret med hjälp av samma Resource Manager-mall.
- Hanteringseffektivitet: Om du använder Resource Manager får du en enda plats (Azure-portalen) för att hantera klustret och kritiska programdistributioner.
I det här dokumentet får du lära dig att:
- Distribuera service fabric-programresurser med hjälp av Resource Manager.
- Uppgradera service fabric-programresurser med hjälp av Resource Manager.
- Ta bort service fabric-programresurser.
Kommentar
Det här dokumentet är del fyra i en självstudieserie i fyra delar, som börjar med att distribuera ett Service Fabric-hanterat kluster. Därför förväntas du distribuera klustret före det här steget. Men om du tänker distribuera klustret och programmet tillsammans, i samma ARM- eller Bicep-mall, vet du att det versions
måste ha ett beroende av nodeType
. Annars misslyckas distributionen.
Distribuera Service Fabric-programresurser
De övergripande steg du vidtar för att distribuera ett program och dess tjänster med hjälp av Resource Manager-programresursmodellen är:
- Paketera programkoden.
- Ladda upp paketet.
- Referera till paketets plats i en Resource Manager-mall som en programresurs.
Mer information finns i Paketera ett program.
Sedan skapar du en Resource Manager-mall, uppdaterar parameterfilen med programinformation och distribuerar mallen i det Hanterade Service Fabric-klustret. Utforska exempel.
Skapa ett lagringskonto
Om du vill distribuera ett program från en Resource Manager-mall måste du ha ett lagringskonto. Lagringskontot används för att mellanlagra programbilden.
Du kan återanvända ett befintligt lagringskonto eller skapa ett nytt lagringskonto för mellanlagring av dina program. Om du använder ett befintligt lagringskonto kan du hoppa över det här steget.
Varning
Anonym offentlig åtkomst till blobdata i ditt lagringskonto utgör en säkerhetsrisk. När du skapar ett lagringskonto rekommenderar vi att du inaktiverar anonym offentlig åtkomst till blobdata på kontonivå genom att ange egenskapen AllowBlobPublicAccess till false. Mer information finns i Åtgärda anonym offentlig läsåtkomst till blobdata (Azure Resource Manager-distributioner).
Konfigurera ditt lagringskonto
När lagringskontot har skapats skapar du en blobcontainer där programmen kan mellanlagras. I Azure-portalen går du till det Azure Storage-konto där du vill lagra dina program. Välj Blobar>Lägg till container.
Du kan bevilja åtkomst till containern på något av följande sätt:
- Du kan tilldela en Azure RBAC-roll som beviljar behörigheter till containern till ett säkerhetsobjekt, så att säkerhetsobjektet kan komma åt data i containern via Microsoft Entra-auktorisering. Mer information finns i Auktorisera åtkomst till blobar med hjälp av Microsoft Entra-ID.
- Du kan delegera åtkomst till containern med en signatur för delad åtkomst för att ge en klient åtkomst till blobar i containern under en begränsad tidsperiod och med specifika behörigheter. Mer information finns i Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS).
- Du kan använda kontoåtkomstnycklarna för att auktorisera åtkomst till blobdata. Den här metoden är den minst säkra och rekommenderas därför inte.
Mellanlagra programmet i ditt lagringskonto
Innan du kan distribuera ett program måste du mellanlagra programmet i Blob Storage. I den här självstudien skapar vi programpaketet manuellt. Tänk på att det här steget kan automatiseras. Mer information finns i Paketera ett program.
I den här självstudien använder vi exempelprogrammet Röstning.
Högerklicka på projektet Voting i Visual Studio och välj sedan Paket.
Gå till katalogen .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Zippa innehållet i en fil med namnet Voting.zip. Den ApplicationManifest.xml filen ska finnas vid roten i zip-filen.
Byt namn på filen för att ändra tillägget från .zip till .sfpkg.
I Azure-portalen går du till appcontainern för ditt lagringskonto, väljer Ladda upp och laddar sedan upp Voting.sfpkg.
Nu är programmet mellanlagrat och du kan skapa Resource Manager-mallen för att distribuera programmet.
Skapa Resource Manager-mallen
Exempelprogrammet innehåller Azure Resource Manager-mallar som du kan använda för att distribuera programmet. Mallfilnamnen är UserApp.json och UserApp.Parameters.json.
Kommentar
Filen UserApp.Parameters.json måste uppdateras med namnet på klustret.
Parameter | Description | Exempel | Kommentarer |
---|---|---|---|
clusterName | Namnet på klustret som du distribuerar till | sf-cluster123 | |
program | Namnet på programmet | Röstning | |
version | Resurs-ID, programtyp och version av appen. | /providers/Microsoft.ServiceFabric/managedClusters/sf-cluster-123/applicationTypes/VotingType/versions/1.0.0 | Måste matcha ApplicationManifest.xml |
serviceName | Namnet på tjänsten | VotingWeb | Måste vara i formatet ServiceType |
serviceTypeName | Typnamnet på tjänsten | VotingWebType | Måste matcha ServiceManifest.xml |
appPackageUrl | Bloblagrings-URL:en för programmet | https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg | URL:en för programpaketet i Blob Storage (proceduren för att ange URL:en beskrivs senare i artikeln) |
{
"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')]"
}
Distribuera Service Fabric-programmet
Kör cmdleten New-AzResourceGroupDeployment för att distribuera programmet till resursgruppen som innehåller klustret:
New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose
Uppgradera Service Fabric-programmet med hjälp av Resource Manager
Viktigt!
Alla tjänster som distribueras via EN ARM-mall (Azure Resource Manager) måste tas bort från avsnittet DefaultServices i motsvarande ApplicationManifest.xml fil.
Du kan uppgradera ett program som redan har distribuerats till ett Service Fabric-kluster av någon av följande skäl:
En ny tjänst läggs till i programmet. En tjänstdefinition måste läggas till i service-manifest.xml och application-manifest.xml filer när en tjänst läggs till i programmet. Om du vill återspegla en ny version av ett program måste du också ändra programtypsversionen från 1.0.0 till 1.0.1 i UserApp.Parameters.json:
"applicationTypeVersion": { "value": "1.0.1" }, "serviceName2": { "value": "VotingData" }, "serviceTypeName2": { "value": "VotingDataType" }
En ny version av en befintlig tjänst läggs till i programmet. Exempel är programkodändringar och uppdateringar av apptypsversion och namn. För den här uppgraderingen uppdaterar du UserApp.Parameters.json så här:
"applicationTypeVersion": { "value": "1.0.1" }
Ta bort Service Fabric-programresurser
Kommentar
Program bör inte tas bort via EN ARM-mall (Azure Resource Manager) eftersom det inte finns något deklarativt sätt att rensa enskilda resurser
Så här tar du bort ett Service Fabric-program som har distribuerats med hjälp av programresursmodellen i Resource Manager:
Använd cmdleten Get-AzResource för att hämta resurs-ID:t för programmet:
Get-AzResource -Name <String> | f1
Använd cmdleten Remove-AzServiceFabricApplication för att ta bort programresurserna:
Remove-AzServiceFabricApplication -ResourceId <String> [-Force]
Migrering från klassiska till hanterade kluster
Om du migrerar program från klassiska till hanterade kluster måste du kontrollera att typerna har angetts korrekt, annars uppstår fel.
Följande objekt framhävs specifikt på grund av användningsfrekvensen, men är inte avsedda att vara en exklusiv lista över skillnader.
- upgradeReplicaSetCheckTimeout är nu ett heltal för hanterad, men en sträng på klassisk SFRP.
Se resurstyper för hanterade klusterprogram för fullständig lista över egenskaper och typer
Nästa steg
Läs mer om distribution av hanterade klusterprogram: