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, als u Resource Manager gebruikt, niet te wachten totdat het cluster gereed is; toepassingsregistratie, inrichting en implementatie kunnen allemaal in één stap plaatsvinden. Het gebruik van Resource Manager is de beste manier om de levenscyclus van toepassingen in uw cluster te beheren. Zie Best practices: Infrastructuur als code voor meer informatie.
Als u uw toepassingen beheert als resources in Resource Manager, kunt u verbeteringen op de volgende gebieden bereiken:
- Audittrail: Resource Manager controleert elke bewerking en houdt een gedetailleerd activiteitenlogboek bij. Een activiteitenlogboek kan u helpen bij het traceren van wijzigingen die zijn aangebracht in de toepassingen en in uw cluster.
- Op rollen gebaseerd toegangsbeheer: u kunt de toegang tot clusters en toepassingen die op het cluster zijn geïmplementeerd, beheren met behulp van dezelfde Resource Manager sjabloon.
- Beheerefficiëntie: het gebruik van Resource Manager biedt u één locatie (de Azure Portal) voor het beheren van uw cluster- en kritieke toepassingsimplementaties.
In dit document leert u het volgende:
- Implementeer toepassingsresources met behulp van Resource Manager.
- Werk toepassingsresources bij met behulp van Resource Manager.
- Toepassingsresources verwijderen.
Toepassingsresources implementeren
De stappen op hoog niveau die u uitvoert om een toepassing en de bijbehorende services te implementeren met behulp van het Resource Manager toepassingsresourcemodel zijn:
- De toepassingscode verpakken.
- Upload het pakket.
- Verwijs naar de locatie van het pakket in een Resource Manager sjabloon als een toepassingsresource.
Zie 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. Voorbeelden verkennen.
Create a storage account
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 de Azure Portal naar het Azure Storage-account waarin 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 meerdere manieren toegang verlenen:
- Toegang verlenen tot Azure-blob- en wachtrijgegevens met behulp van Azure RBAC in de Azure Portal.
- Delegeer toegang met behulp van een shared access signature.
In het voorbeeld in de volgende schermopname wordt anonieme leestoegang voor blobs gebruikt.
Faseer de toepassing in uw opslagaccount
Voordat u een toepassing kunt implementeren, moet u de toepassing in blobopslag fasen. 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 project Voting 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 de Azure Portal in de container apps 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 zijn UserApp.json en UserApp.Parameters.json.
Notitie
Het bestand UserApp.Parameters.json moet worden bijgewerkt met de naam van uw cluster.
Parameter | Beschrijving | 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 |
Servicenaam | 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 een ARM JSON-definitie, moet worden verwijderd uit de sectie DefaultServices van het bijbehorende ApplicationManifest.xml-bestand.
U kunt een toepassing die al in een Service Fabric-cluster is geïmplementeerd, upgraden om een van de volgende redenen:
Er wordt een nieuwe service toegevoegd aan de toepassing. Een servicedefinitie moet 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 zijn wijzigingen in toepassingscode en updates voor de versie en naam van het app-type. Voor deze upgrade werkt u UserApp.Parameters.json als volgt bij:
"applicationTypeVersion": { "value": "1.0.1" },
Toepassingsresources 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 de servicenaam zijn' Antwoord: Zorg ervoor dat de servicenaam als volgt is opgemaakt: ProfileVetSF~CallTicketDataWebApi.
Volgende stappen
Informatie ophalen over het toepassingsresourcemodel: