Modello di risorsa dell'applicazione di Service Fabric
Sono disponibili più opzioni per la distribuzione di applicazioni di Azure Service Fabric nel cluster di Service Fabric. È consigliabile usare Azure Resource Manager. Se si usa Resource Manager, è possibile descrivere applicazioni e servizi in JSON e quindi distribuirli nello stesso modello di Resource Manager del cluster. A differenza dell'uso di PowerShell o dell'interfaccia della riga di comando di Azure per distribuire e gestire le applicazioni, se si usa Resource Manager, non è necessario attendere che il cluster sia pronto. La registrazione dell'applicazione, il provisioning e la distribuzione possono essere tutte eseguite in un unico passaggio. L'uso di Resource Manager è il modo migliore per gestire il ciclo di vita dell'applicazione nel cluster. Per altre informazioni, vedere Procedure consigliate: Infrastruttura come codice.
La gestione delle applicazioni come risorse in Resource Manager consente di ottenere miglioramenti in queste aree:
- Audit trail: Resource Manager controlla ogni operazione e mantiene un log attività dettagliato. Un log attività consente di tracciare tutte le modifiche apportate alle applicazioni e al cluster.
- Controllo degli accessi in base al ruolo: è possibile gestire l'accesso ai cluster e alle applicazioni distribuite nel cluster usando lo stesso modello di Resource Manager.
- Efficienza di gestione: l'uso di Resource Manager offre una singola posizione (la portale di Azure) per la gestione dei cluster e delle distribuzioni critiche dell'applicazione.
In questo documento si apprenderà come:
- Distribuire le risorse dell'applicazione usando Resource Manager.
- Aggiornare le risorse dell'applicazione usando Resource Manager.
- Eliminare le risorse dell'applicazione.
Distribuire le risorse dell'applicazione
I passaggi generali da eseguire per distribuire un'applicazione e i relativi servizi usando il modello di risorse dell'applicazione Resource Manager sono:
- Creare il pacchetto del codice dell'applicazione.
- Caricare il pacchetto.
- Fare riferimento al percorso del pacchetto in un modello di Resource Manager come risorsa dell'applicazione.
Per altre informazioni, visualizzare Pacchetto un'applicazione.
Si crea quindi un modello di Resource Manager, si aggiorna il file di parametri con i dettagli dell'applicazione e si distribuisce il modello nel cluster di Service Fabric. Esplorare esempi.
Creare un account di archiviazione
Per distribuire un'applicazione da un modello di Resource Manager, è necessario disporre di un account di archiviazione. L'account di archiviazione viene usato per eseguire la fase dell'immagine dell'applicazione.
È possibile riutilizzare un account di archiviazione esistente oppure creare un nuovo account di archiviazione per la gestione temporanea delle applicazioni. Se si usa un account di archiviazione esistente, è possibile ignorare questo passaggio.
Configurare l'account di archiviazione
Dopo aver creato l'account di archiviazione, è possibile creare un contenitore BLOB in cui è possibile eseguire la fase delle applicazioni. Nella portale di Azure passare all'account di archiviazione di Azure in cui archiviare le applicazioni. Selezionare BLOB>Aggiungi contenitore.
Le risorse nel cluster possono essere protette impostando il livello di accesso pubblico su privato. È possibile concedere l'accesso in più modi:
- Concedere l'accesso ai dati BLOB e code di Azure usando il controllo degli accessi in base al ruolo di Azure nel portale di Azure.
- Delegare l'accesso usando una firma di accesso condiviso.
Nell'esempio seguente viene usato l'accesso in lettura anonimo per i BLOB.
Eseguire la fase dell'applicazione nell'account di archiviazione
Prima di poter distribuire un'applicazione, è necessario eseguire la fase dell'applicazione nell'archiviazione BLOB. In questa esercitazione viene creato manualmente il pacchetto dell'applicazione. Tenere presente che questo passaggio può essere automatizzato. Per altre informazioni, vedere Pacchetto di un'applicazione.
In questa esercitazione viene usata l'applicazione di esempio Di voto.
In Visual Studio fare clic con il pulsante destro del mouse sul progetto Di voto e quindi scegliere Pacchetto.
Passare alla directory .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Zip il contenuto in un file denominato Voting.zip. Il file ApplicationManifest.xml deve trovarsi nella radice del file zip.
Rinominare il file per modificare l'estensione da .zip a sfpkg.
Nel portale di Azure, nel contenitore delle app per l'account di archiviazione selezionare Carica e quindi caricare Voting.sfpkg.
A questo punto, l'applicazione è ora in fase e è possibile creare il modello di Resource Manager per distribuire l'applicazione.
Creare il modello di Azure Resource Manager
L'applicazione di esempio contiene modelli di Azure Resource Manager che è possibile usare per distribuire l'applicazione. I nomi dei file di modello sono UserApp.json e UserApp.Parameters.json.
Nota
Il file UserApp.Parameters.json deve essere aggiornato con il nome del cluster.
Parametro | Descrizione | Esempio | Commenti |
---|---|---|---|
clusterName | Nome del cluster in cui si sta distribuendo | sf-cluster123 | |
application | Nome dell'applicazione | Operazioni di voto | |
applicationTypeName | Nome del tipo dell'applicazione | VotingType | Deve corrispondere ApplicationManifest.xml |
applicationTypeVersion | Versione del tipo di applicazione | 1.0.0 | Deve corrispondere ApplicationManifest.xml |
serviceName | Il nome del servizio | Voto~VotingWeb | Deve essere nel formato ApplicationName~ServiceType |
serviceTypeName | Nome del tipo del servizio | VotingWeb | Deve corrispondere ServiceManifest.xml |
appPackageUrl | URL di archiviazione BLOB dell'applicazione | https://servicefabricapps.blob.core.windows.net/apps/Voting.sfpkg | URL del pacchetto dell'applicazione nell'archiviazione BLOB (la procedura per impostare l'URL è descritta più avanti nell'articolo) |
{
"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')]"
}
Distribuire l'applicazione
Eseguire il cmdlet New-AzResourceGroupDeployment per distribuire l'applicazione nel gruppo di risorse che contiene il cluster:
New-AzResourceGroupDeployment -ResourceGroupName "sf-cluster-rg" -TemplateParameterFile ".\UserApp.Parameters.json" -TemplateFile ".\UserApp.json" -Verbose
Aggiornare l'applicazione Service Fabric usando Resource Manager
Importante
Qualsiasi servizio distribuito tramite la definizione JSON di ARM deve essere rimosso dalla sezione DefaultServices del file di ApplicationManifest.xml corrispondente.
È possibile aggiornare un'applicazione già distribuita in un cluster di Service Fabric per uno dei motivi seguenti:
Un nuovo servizio viene aggiunto all'applicazione. Una definizione del servizio deve essere aggiunta ai fileservice-manifest.xml e application-manifest.xml quando un servizio viene aggiunto all'applicazione. Per riflettere una nuova versione di un'applicazione, è anche necessario modificare la versione del tipo di applicazione da 1.0.0 a 1.0.1 in UserApp.Parameters.json:
"applicationTypeVersion": { "value": "1.0.1" }, "serviceName2": { "value": "Voting~VotingData" }, "serviceTypeName2": { "value": "VotingDataType" }
Una nuova versione di un servizio esistente viene aggiunta all'applicazione. Gli esempi includono modifiche e aggiornamenti del codice dell'applicazione alla versione e al nome del tipo di app. Per questo aggiornamento, aggiornare UserApp.Parameters.json come segue:
"applicationTypeVersion": { "value": "1.0.1" },
Eliminare le risorse dell'applicazione
Per eliminare un'applicazione distribuita usando il modello di risorse dell'applicazione in Resource Manager:
Usare il cmdlet Get-AzResource per ottenere l'ID risorsa per l'applicazione:
Get-AzResource -Name <String> | f1
Usare il cmdlet Remove-AzResource per eliminare le risorse dell'applicazione:
Remove-AzResource -ResourceId <String> [-Force] [-ApiVersion <String>]
Domande e risposte comuni
Errore: "Nome applicazione deve essere un prefisso del nome del servizio" Risposta: assicurarsi che il nome del servizio sia formattato come indicato di seguito: ProfileVetSF~CallTicketDataWebApi.
Passaggi successivi
Ottenere informazioni sul modello di risorse dell'applicazione:
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per