Condividi tramite


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:

  1. Creare il pacchetto del codice dell'applicazione.
  2. Caricare il pacchetto.
  3. 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.

Creare un account di archiviazione

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:

Nell'esempio seguente viene usato l'accesso in lettura anonimo per i BLOB.

Creare 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.

  1. In Visual Studio fare clic con il pulsante destro del mouse sul progetto Di voto e quindi scegliere Pacchetto.

    Applicazione pacchetto

  2. 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.

    Applicazione ZIP

  3. Rinominare il file per modificare l'estensione da .zip a sfpkg.

  4. Nel portale di Azure, nel contenitore delle app per l'account di archiviazione selezionare Carica e quindi caricare Voting.sfpkg.

    Caricare il pacchetto dell'app

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:

  1. Usare il cmdlet Get-AzResource per ottenere l'ID risorsa per l'applicazione:

    Get-AzResource  -Name <String> | f1
    
  2. 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: