Condividi tramite


Modello di risorse 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, il provisioning e la distribuzione dell'applicazione possono essere 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 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 un'unica posizione (il portale di Azure) per la gestione del cluster e delle distribuzioni critiche delle applicazioni.

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, vedere Creare un pacchetto di un'applicazione.

Creare quindi un modello di Resource Manager, aggiornare il file dei parametri con i dettagli dell'applicazione e distribuire il modello nel cluster di Service Fabric. Esplorare gli 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 preparare l'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, si crea un contenitore BLOB in cui è possibile preparare le applicazioni. Nella portale di Azure passare all'account 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 diversi modi:

L'esempio riportato nello screenshot seguente usa l'accesso in lettura anonimo per i BLOB.

Crea BLOB

Preparare l'applicazione nell'account di archiviazione

Prima di poter distribuire un'applicazione, è necessario preparare l'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 Creare un pacchetto di un'applicazione.

In questa esercitazione viene usata l'applicazione di esempio Voting.

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

    Applicazione pacchetto

  2. Passare alla directory .\service-fabric-dotnet-quickstart\Voting\pkg\Debug . Comprimere 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 di gestione temporanea ed è 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 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 esegue la distribuzione sf-cluster123
applicazione 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 Voting~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'archivio 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 di Service Fabric usando Resource Manager

Importante

Qualsiasi servizio distribuito tramite la definizione JSON arm deve essere rimosso dalla sezione DefaultServices del file ApplicationManifest.xml corrispondente.

È possibile aggiornare un'applicazione già distribuita in un cluster di Service Fabric per uno dei motivi seguenti:

  • All'applicazione viene aggiunto un nuovo servizio. È necessario aggiungere una definizione di servizio a service-manifest.xml e application-manifest.xml file 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"
    }
    
  • All'applicazione viene aggiunta una nuova versione di un servizio esistente. Gli esempi includono modifiche al codice dell'applicazione e aggiornamenti alla versione e al nome del tipo di app. Per questo aggiornamento, aggiornare UserApp.Parameters.json simile al seguente:

     "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: "Application name must be a prefix of service name" Answer: Make sure the service name is formatted as follows: ProfileVetSF~CallTicketDataWebApi.

Passaggi successivi

Ottenere informazioni sul modello di risorse dell'applicazione: