Ospitare un'applicazione Node.js in Azure Service Fabric

Questa guida introduttiva illustra come distribuire un'applicazione esistente, in questo esempio Node.js, in un cluster di Service Fabric in esecuzione in Azure.

Prerequisiti

Prima di iniziare, assicurarsi di aver configurato l'ambiente di sviluppo, che include l'installazione di Service Fabric SDK e Visual Studio 2019 o 2015.

È anche necessaria un'applicazione Node.js esistente da distribuire. In questa guida introduttiva viene usato un semplice sito Web Node.js che può essere scaricato qui. Estrarre il file nella cartella <path-to-project>\ApplicationPackageRoot\<package-name>\Code\ dopo aver creato il progetto nel passaggio successivo.

Se non hai una sottoscrizione di Azure, crea un account gratuito.

Creare il servizio

Avviare Visual Studio come amministratore.

Creare un progetto con CTRL+SHIFT+N.

Nella finestra di dialogo Nuovo progetto scegliere Cloud > Applicazione di Service Fabric.

Assegnare all'applicazione il nome MyGuestApp e premere Crea.

Importante

Node.js può facilmente superare il limite di 260 caratteri per i percorsi presente in Windows. Usare per il progetto un percorso breve, ad esempio c:\code\svc1. È anche possibile seguire queste istruzioni per abilitare i percorsi di file lunghi in Windows 10.

Finestra di dialogo Nuovo progetto in Visual Studio

Nella finestra di dialogo successiva è possibile creare qualsiasi tipo di servizio di Service Fabric. Per questa guida introduttiva scegliere Eseguibile guest.

Assegnare al servizio il nome MyGuestService e impostare le opzioni a destra sui valori seguenti:

Impostazione Valore
Cartella del pacchetto di codice <cartella con l'app Node.js>
Comportamento del pacchetto di codice Copia il contenuto della cartella nel progetto
Programma node.exe
Argomenti server.js
Cartella di lavoro CodePackage

Scegliere OK.

Finestra di dialogo Nuovo servizio in Visual Studio

Visual Studio crea il progetto di applicazione e il progetto di servizio Actor e li visualizza in Esplora soluzioni.

Il progetto dell'applicazione (MyGuestApp) non contiene direttamente codice. Il progetto fa riferimento a un set di progetti di servizio. Contiene anche altri tre tipi di contenuto:

  • Profili di pubblicazione
    Preferenze relative agli strumenti per diversi ambienti.

  • Script
    Script di PowerShell per distribuire o aggiornare l'applicazione.

  • Definizione di applicazione
    Include il manifesto dell'applicazione in ApplicationPackageRoot. I file dei parametri dell'applicazione associati sono disponibili in ApplicationParameters, definiscono l'applicazione e consentono di configurarla appositamente per un ambiente specifico.

Per una panoramica del contenuto del progetto di servizio, vedere la Guida introduttiva a Reliable Services.

Configurare la rete

L'app Node.js di esempio che viene distribuita usa la porta 80 ed è necessario indicare a Service Fabric che tale porta deve essere esposta.

Aprire il file ServiceManifest.xml nel progetto. Nella parte inferiore del manifesto è presente un oggetto con una <Resources> \ <Endpoints> voce già definita. Modificare la voce aggiungendo Port, Protocol e Type.

  <Resources>
    <Endpoints>
      <!-- This endpoint is used by the communication listener to obtain the port on which to 
           listen. Please note that if your service is partitioned, this port is shared with 
           replicas of different partitions that are placed in your code. -->
      <Endpoint Name="MyGuestAppServiceTypeEndpoint" Port="80" Protocol="http" Type="Input" />
    </Endpoints>
  </Resources>

Distribuzione in Azure

Se si preme F5 ed esegui il progetto, viene distribuito nel cluster locale. Si eseguirà invece la distribuzione in Azure.

Fare clic con il pulsante destro del mouse sul progetto e scegliere Pubblica. Verrà aperta una finestra di dialogo per la pubblicazione in Azure.

Finestra di dialogo per la pubblicazione in Azure di un servizio di Service Fabric

Selezionare il profilo di destinazione PublishProfiles\Cloud.xml.

Se questa operazione non è stata eseguita in precedenza, scegliere un account Azure in cui effettuare la distribuzione. Se non si ha ancora un account, è possibile iscriversi per ottenerne uno.

In Endpoint connessione selezionare il cluster di Service Fabric in cui eseguire la distribuzione. Se non è disponibile, selezionare <Crea nuovo cluster per> aprire la finestra del Web browser alla portale di Azure. Per altre informazioni, vedere Creare un cluster nel portale.

Quando si crea il cluster di Service Fabric, assicurarsi di impostare Endpoint personalizzati su 80.

Configurazione del tipo di nodo di Service Fabric con endpoint personalizzato

Il completamento della creazione di un nuovo cluster di Service Fabric richiede tempo. Al termine, tornare alla finestra di dialogo di pubblicazione e selezionare <Aggiorna>. Il nuovo cluster sarà incluso nella casella di riepilogo a discesa. Selezionare il cluster.

Fare clic su Pubblica e attendere il completamento della distribuzione.

Il processo può richiedere alcuni minuti. Al termine, potrebbero trascorrere ancora alcuni minuti prima che l'applicazione sia completamente disponibile.

Testare il sito Web

Dopo che è stato pubblicato, testare il servizio in un Web browser.

Prima di tutto, aprire il portale di Azure e trovare il servizio di Service Fabric.

Controllare l'indirizzo del servizio nel pannello di panoramica. Usare il nome di dominio della proprietà Endpoint di connessione client. Ad esempio: http://mysvcfab1.westus2.cloudapp.azure.com.

Pannello di panoramica di Service Fabric nel portale di Azure

Passare a questo indirizzo in cui verrà visualizzata la HELLO WORLD risposta.

Eliminare il cluster

Non dimenticare di eliminare tutte le risorse create per questa guida introduttiva, perché vengono addebitate le risorse.

Passaggi successivi

Altre informazioni sugli eseguibili guest.