Service Fabric-toepassingsresourcemodel
U hebt meerdere opties voor het implementeren van Azure Service Fabric-toepassingen in uw Service Fabric-cluster. U wordt aangeraden Azure Resource Manager te gebruiken. Als u Resource Manager gebruikt, kunt u toepassingen en services in JSON beschrijven en deze vervolgens implementeren in dezelfde Resource Manager-sjabloon als uw cluster. In tegenstelling tot het gebruik van PowerShell of Azure CLI voor het implementeren en beheren van toepassingen, hoeft u niet te wachten totdat het cluster gereed is als u Resource Manager gebruikt. toepassingsregistratie, inrichting en implementatie kunnen in één stap plaatsvinden. Het gebruik van Resource Manager is de beste manier om de levenscyclus van de toepassing in uw cluster te beheren. Zie Best practices voor meer informatie: Infrastructuur als code.
Het beheren van uw toepassingen als resources in Resource Manager kan u helpen bij het verbeteren van deze gebieden:
- Audittrail: Resource Manager controleert elke bewerking en houdt een gedetailleerd activiteitenlogboek bij. Een activiteitenlogboek kan u helpen bij het traceren van wijzigingen in de toepassingen en uw cluster.
- Op rollen gebaseerd toegangsbeheer: u kunt de toegang tot clusters en toepassingen beheren die op het cluster zijn geïmplementeerd met behulp van dezelfde Resource Manager-sjabloon.
- Beheerefficiëntie: Met Resource Manager beschikt u over één locatie (Azure Portal) voor het beheren van uw cluster- en kritieke toepassingsimplementaties.
In dit document leert u het volgende:
- Toepassingsresources implementeren met Resource Manager.
- Upgrade toepassingsresources met behulp van Resource Manager.
- Toepassingsbronnen verwijderen.
Toepassingsbronnen implementeren
De stappen op hoog niveau voor het implementeren van een toepassing en de bijbehorende services met behulp van het Resource Manager-toepassingsresourcemodel zijn:
- Pak de toepassingscode in.
- Upload het pakket.
- Verwijs naar de locatie van het pakket in een Resource Manager-sjabloon als toepassingsresource.
Bekijk Een toepassing verpakken voor meer informatie.
Vervolgens maakt u een Resource Manager-sjabloon, werkt u het parameterbestand bij met toepassingsgegevens en implementeert u de sjabloon in het Service Fabric-cluster. Verken voorbeelden.
Een opslagaccount maken
Als u een toepassing wilt implementeren vanuit een Resource Manager-sjabloon, moet u een opslagaccount hebben. Het opslagaccount wordt gebruikt om de installatiekopieën van de toepassing te fasen.
U kunt een bestaand opslagaccount opnieuw gebruiken of u kunt een nieuw opslagaccount maken voor het faseren van uw toepassingen. Als u een bestaand opslagaccount gebruikt, kunt u deze stap overslaan.
Uw opslagaccount configureren
Nadat het opslagaccount is gemaakt, maakt u een blobcontainer waarin de toepassingen kunnen worden gefaseerd. Ga in Azure Portal naar het Azure Storage-account waar u uw toepassingen wilt opslaan. Selecteer Blobs>Container toevoegen.
Resources in uw cluster kunnen worden beveiligd door het openbare toegangsniveau in te stellen op privé. U kunt op verschillende manieren toegang verlenen:
- Toegang verlenen tot Azure-blob- en wachtrijgegevens met behulp van Azure RBAC in Azure Portal.
- Toegang delegeren met behulp van een handtekening voor gedeelde toegang.
In het voorbeeld in de volgende schermopname wordt anonieme leestoegang voor blobs gebruikt.
De toepassing faseer in uw opslagaccount
Voordat u een toepassing kunt implementeren, moet u de toepassing faseereren in blobopslag. In deze zelfstudie maken we het toepassingspakket handmatig. Houd er rekening mee dat deze stap kan worden geautomatiseerd. Zie Een toepassing verpakken voor meer informatie.
In deze zelfstudie gebruiken we de voorbeeldtoepassing Voting.
Klik in Visual Studio met de rechtermuisknop op het stemproject en selecteer Vervolgens Pakket.
Ga naar de map .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Zip de inhoud in een bestand met de naam Voting.zip. Het ApplicationManifest.xml-bestand moet zich in de hoofdmap van het zip-bestand.
Wijzig de naam van het bestand om de extensie te wijzigen van .zip in .sfpkg.
Selecteer In Azure Portal in de app-container voor uw opslagaccount de optie Uploaden en upload vervolgens Voting.sfpkg.
Nu is de toepassing gefaseerd en kunt u de Resource Manager-sjabloon maken om de toepassing te implementeren.
Het Resource Manager-sjabloon maken
De voorbeeldtoepassing bevat Azure Resource Manager-sjablonen die u kunt gebruiken om de toepassing te implementeren. De namen van sjabloonbestanden worden UserApp.json en UserApp.Parameters.json.
Notitie
Het UserApp.Parameters.json-bestand moet worden bijgewerkt met de naam van uw cluster.
Parameter | Description | Voorbeeld | Opmerkingen |
---|---|---|---|
clusterName | De naam van het cluster waarnaar u implementeert | sf-cluster123 | |
toepassing | De naam van de toepassing | Stemmen | |
applicationTypeName | De typenaam van de toepassing | VotingType | Moet overeenkomen met ApplicationManifest.xml |
applicationTypeVersion | De versie van het toepassingstype | 1.0.0 | Moet overeenkomen met ApplicationManifest.xml |
serviceName | De naam van de service | Voting~VotingWeb | Moet de indeling ApplicationName~ServiceType hebben |
serviceTypeName | De typenaam van de service | VotingWeb | Moet overeenkomen met ServiceManifest.xml |
appPackageUrl | De BLOB Storage-URL van de toepassing | https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg | De URL van het toepassingspakket in blobopslag (de procedure voor het instellen van de URL wordt verderop in het artikel beschreven) |
{
"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')]"
}
De toepassing implementeren
Voer de cmdlet New-AzResourceGroupDeployment uit om de toepassing te implementeren in de resourcegroep die uw cluster bevat:
New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose
De Service Fabric-toepassing upgraden met behulp van Resource Manager
Belangrijk
Elke service die wordt geïmplementeerd via de ARM JSON-definitie, moet worden verwijderd uit de sectie DefaultServices van het bijbehorende ApplicationManifest.xml-bestand.
U kunt om een van deze redenen een upgrade uitvoeren van een toepassing die al is geïmplementeerd in een Service Fabric-cluster:
Er wordt een nieuwe service toegevoegd aan de toepassing. Er moet een servicedefinitie worden toegevoegd aan service-manifest.xml en application-manifest.xml bestanden wanneer een service wordt toegevoegd aan de toepassing. Als u een nieuwe versie van een toepassing wilt weergeven, moet u ook de versie van het toepassingstype wijzigen van 1.0.0 in 1.0.1 in UserApp.Parameters.json:
"applicationTypeVersion": { "value": "1.0.1" }, "serviceName2": { "value": "Voting~VotingData" }, "serviceTypeName2": { "value": "VotingDataType" }
Er wordt een nieuwe versie van een bestaande service toegevoegd aan de toepassing. Voorbeelden hiervan zijn wijzigingen in toepassingscode en updates voor de versie en naam van het app-type. Werk voor deze upgrade UserApp.Parameters.json als volgt bij:
"applicationTypeVersion": { "value": "1.0.1" },
Toepassingsbronnen verwijderen
Een toepassing verwijderen die is geïmplementeerd met behulp van het toepassingsresourcemodel in Resource Manager:
Gebruik de cmdlet Get-AzResource om de resource-id voor de toepassing op te halen:
Get-AzResource -Name <String> | f1
Gebruik de cmdlet Remove-AzResource om de toepassingsresources te verwijderen:
Remove-AzResource -ResourceId <String> [-Force] [-ApiVersion <String>]
Veelgestelde vragen en antwoorden
Fout: 'Toepassingsnaam moet een voorvoegsel van servicenaam zijn' Antwoord: Zorg ervoor dat de servicenaam als volgt is opgemaakt: ProfileVetSF~CallTicketDataWebApi.
Volgende stappen
Informatie ophalen over het toepassingsresourcemodel: