Aggiornare il servizio mobile Node.js di Azure esistente al servizio appUpgrade your existing Node.js Azure Mobile Service to App Service

Le app per dispositivi mobili del servizio app offrono un nuovo modo per creare applicazioni per dispositivi mobili usando Microsoft Azure.App Service Mobile is a new way to build mobile applications using Microsoft Azure. Per altre informazioni, vedere Informazioni sulle app per dispositivi mobili.To learn more, see [What are Mobile Apps?].

Questo articolo descrive come eseguire l'aggiornamento di un'applicazione back-end Node.js esistente da Servizi mobili di Azure a una nuova app per dispositivi mobili del servizio app.This article describes how to upgrade an existing Node.js backend application from Azure Mobile Services to a new App Service Mobile Apps. Durante una migrazione, l'applicazione Servizi mobili esistente può continuare a funzionare.While you perform this upgrade, your existing Mobile Services application can continue to operate. Se si deve aggiornare un'applicazione back-end Node.js, vedere Aggiornare il servizio mobile .NET.If you need to upgrade a Node.js backend application, refer to Upgrading your .NET Mobile Services.

Quando si esegue l'aggiornamento di un back-end per dispositivi mobili a Servizio app di Azure, questo ha accesso a tutte le funzionalità del servizio app e la fatturazione viene eseguita in base ai prezzi del servizio app, non a quelli di Servizi mobili.When a mobile backend is upgraded to Azure App Service, it has access to all App Service features and are billed according to [App Service pricing], not Mobile Services pricing.

Eseguire la migrazione o aggiornareMigrate vs. upgrade

Sono disponibili due opzioni per il passaggio da Servizi mobili al servizio app: la migrazione o l'aggiornamento.There are two options for moving from Mobile Services to App Service: migration or upgrade. Entrambe le opzioni consentono di accedere a tutte le funzionalità di hosting del servizio app:Either option will give you access to all of the hosting capabilities of App Service:

  • migrazione di un servizio cambia semplicemente l'ambiente sottostante che ospita il back-end mobile.Migrating a service just changes the underlying environment that hosts your mobile backend. Non richiede alcuna modifica del codice per il progetto del client mobile o del server mobile.It requires no code changes to either the mobile client or the mobile server project. Se si usa l'opzione di migrazione automatica, viene mantenuto l'URL service.azure mobile.net .If you use the automated migration option, this preserves your service.azure-mobile.net URL.
  • aggiornamento di un servizio richiede modifiche del codice per il progetto sia del server che del client, ma consente di sfruttare le nuove funzionalità di Mobile SDK, come i miglioramenti dell'autenticazione e la superiore flessibilità per il progetto server.Upgrading a service does require code changes to both your server and client project, but allows you to take advantage of new mobile SDK features, such as improvements to authentication and more flexibility for your server project.

Suggerimento

Prima di procedere a un aggiornamento, è consigliabile eseguire una migrazione .It is recommended that you perform a migration before going through an upgrade. In questo modo, è possibile inserire entrambe le versioni dell'applicazione nello stesso piano del servizio app, senza costi aggiuntivi.This way, you can put both versions of your application on the same App Service Plan and incur no additional cost.

Miglioramenti apportati all'SDK del server Node.js di App per dispositivi mobiliImprovements in Mobile Apps Node.js server SDK

L'aggiornamento alla nuova versione di Mobile Apps SDK fornisce numerosi miglioramenti, tra cui:Upgrading to the new Mobile Apps SDK provides many improvements, including:

  • Nuova versione di Node SDK leggera e progettata per adattarsi alle nuove versioni di Node man mano che vengono rilasciate, perché basata sul framework di Express. È possibile personalizzare il comportamento dell'applicazione con il middleware di Express.Based on the Express framework, the new Node SDK is light-weight and designed to keep up with new Node versions as they come out. You can customize the application behavior with Express middleware.
  • Miglioramenti significativi delle prestazioni rispetto a Mobile Services SDK.Significant performance improvements compared to the Mobile Services SDK.
  • Possibilità di ospitare un sito Web con il back-end per dispositivi mobili e di aggiungere facilmente Azure Mobile SDK a qualsiasi applicazione express.v4 esistente.You can now host a website together with your mobile backend; similarly, it's easy to add the Azure Mobile SDK to any existing express.v4 application.
  • Creato per lo sviluppo multipiattaforma e locale, Mobile Apps SDK può essere sviluppato ed eseguito in locale su piattaforme Windows, Linux e OSX.Built for cross-platform and local development, the Mobile Apps SDK can be developed and run locally on Windows, Linux, and OSX platforms. L'uso di tecniche di sviluppo comuni di Node, ad esempio l'esecuzione di test Mocha prima della distribuzione, è ora più semplice.It's now easy to use common Node development techniques like running Mocha tests prior to deployment.

Panoramica di base sull'aggiornamentoBasic upgrade overview

Per agevolare l'aggiornamento di un back-end Node.js, in Servizio app di Azure è stato incluso un pacchetto per la compatibilità.To aid in upgrading a Node.js backend, Azure App Service has provided a compatibility package. Al termine dell'aggiornamento sarà disponibile un nuovo sito che potrà essere distribuito in un nuovo sito del servizio app.After upgrade, you will have a new site that can be deployed to a new App Service site.

Gli SDK del client di Servizi mobili non sono compatibili con il nuovo SDK del server di App per dispositivi mobili.The Mobile Services client SDKs are not compatible with the new Mobile Apps server SDK. Per garantire la continuità del servizio per l'app, non devono essere pubblicate modifiche in un sito che usa client pubblicati.In order to provide continuity of service for your app, you should not publish changes to a site currently serving published clients. È invece necessario creare una nuova app per dispositivi mobili che agisce da duplicato.Instead, you should create a new mobile app that serves as a duplicate. È possibile inserire questa applicazione nello stesso piano di servizio app per evitare di sostenere costi finanziari aggiuntivi.You can put this application on the same App Service plan to avoid incurring additional financial cost.

Si avranno quindi due versioni dell'applicazione: una che rimane invariata e viene usata dalle app pubblicate in condizioni normali, l'altra che può essere aggiornata e integrata con una nuova versione del client.You will then have two versions of the application: one that stays the same and serves published apps in the wild, and the other which you can then upgrade and target with a new client release. È possibile spostare e testare il codice in base alle esigenze, ma è necessario assicurarsi che tutte le correzioni di bug apportate vengano applicate a entrambe le versioni.You can move and test your code at your pace, but you should make sure that any bug fixes you make get applied to both. Quando si ritiene di avere aggiornato alla versione più recente il numero desiderato di app client, è possibile eliminare l'app migrata originale, se lo si desidera.Once you feel that a desired number of client apps in the wild have updated to the latest version, you can delete the original migrated app if you desire. Questa operazione non comporta l'applicazione di costi aggiuntivi, se l'app è ospitata nello stesso piano di servizio app dell'app per dispositivi mobili.It doesn't incur any additional monetary costs, if hosted in the same App Service plan as your Mobile App.

La struttura completa del processo di aggiornamento è la seguente:The full outline for the upgrade process is as follows:

  1. Scaricare il servizio mobile di Azure esistente (migrato).Download your existing (migrated) Azure Mobile Service.
  2. Convertire il progetto in un'app per dispositivi mobili di Azure usando il pacchetto per la compatibilità.Convert the project to an Azure Mobile App using the compatibility package.
  3. Correggere le eventuali differenze (ad esempio nelle impostazioni di autenticazione).Correct any differences (such as authentication settings).
  4. Distribuire il progetto dell'app per dispositivi mobili convertito in un nuovo servizio app.Deploy your converted Azure Mobile App project to a new App Service.
  5. Rilasciare una nuova versione dell'applicazione client che usa la nuova app per dispositivi mobili.Release a new version of your client application that uses the new Mobile App.
  6. (Facoltativo) Eliminare l'app del servizio mobile originale migrata.(Optional) Delete your original migrated mobile service app.

L'eliminazione può essere eseguita quando non è presente traffico nel servizio mobile originale migrato.Deletion can occur when you don't see any traffic on your original migrated mobile service.

Installare i prerequisitiInstall the Pre-requisites

È consigliabile installare Node nel computer locale.You should install [Node] on your local machine. Installare anche il pacchetto per la compatibilità.You should also install the compatibility package. Al termine dell'installazione di Node, è possibile eseguire il comando seguente da un nuovo prompt dei comandi o di PowerShell:After Node is installed, you can run the following command from a new cmd or PowerShell prompt:

npm i -g azure-mobile-apps-compatibility

Ottenere gli script di Servizi mobili di AzureObtain your Azure Mobile Services Scripts

  • Accedere al portale di Azure.Log in to the Azure Portal.
  • Usare Tutte le risorse o Servizi app per trovare il sito di Servizi mobili.Using All Resources or App Services, find your Mobile Services site.
  • Nel sito fare clic su Strumenti -> Kudu -> Vai per aprire il sito Kudu.Within the site, click on Tools -> Kudu -> Go to open the Kudu site.
  • Fare clic su Debug Console (Console di debug) -> PowerShell per aprire la console di debug.Click on Debug Console -> PowerShell to open the Debug console.
  • Passare a site/wwwroot/App_Data/config facendo clic su una directory alla volta.Navigate to site/wwwroot/App_Data/config by clicking on each directory in turn
  • Fare clic sull'icona per il download accanto alla directory scripts .Click on the download icon next to the scripts directory.

Verranno così scaricati gli script in formato ZIP.This will download the scripts in ZIP format. Creare una nuova directory nel computer locale e decomprimere il file scripts.ZIP nella directory.Create a new directory on your local machine and unpack the scripts.ZIP file within the directory. Verrà così creata una directory scripts .This will create a scripts directory.

Eseguire lo scaffolding del nuovo back-end delle app per dispositivi mobili di AzureScaffold the new Azure Mobile Apps backend

Eseguire il comando seguente dalla directory contenente la directory scripts:Run the following command from the directory containing the scripts directory:

scaffold-mobile-app scripts out

Verrà così creato un back-end sottoposto a scaffolding delle app per dispositivi mobili di Azure nella directory out .This will create a scaffolded Azure Mobile Apps backend in the out directory. Nonostante non sia obbligatorio, è opportuno archiviare la directory out nel repository di codice sorgente preferito.Although not required, it's a good idea to check the out directory into a source code repository of your choice.

Distribuire il back-end delle app per dispositivi mobiliDeploy your Azure Mobile Apps backend

Durante la distribuzione, è necessario eseguire le operazioni seguenti:During deployment, you will need to do the following:

  1. Creare una nuova app per dispositivi mobili nel portale di Azure.Create a new Mobile App in the Azure Portal.
  2. Eseguire lo script createViews.sql sul proprio database connesso.Run the createViews.sql script on your connected database.
  3. Collegare al nuovo servizio app il database collegato al servizio mobile.Link the database that is linked to your Mobile Service to your new App Service.
  4. Collegare tutte le altre risorse (ad esempio, Hub di notifica) al nuovo servizio app.Link any other resources (such as Notification Hubs) to the new App Service.
  5. Distribuire il codice generato nel nuovo sito.Deploy the generated code to your new site.

Creare una nuova app per dispositivi mobiliCreate a new Mobile App

  1. Accedere al portale di Azure.Log in at the Azure Portal.
  2. Fare clic su +NUOVO > Web e dispositivi mobili > App per dispositivi mobili e quindi specificare un nome per il back-end dell'app per dispositivi mobili.Click +NEW > Web + Mobile > Mobile App, then provide a name for your Mobile App backend.
  3. In Gruppo di risorseselezionare un gruppo di risorse esistente o crearne uno nuovo usando lo stesso nome dell'app.For the Resource Group, select an existing resource group, or create a new one (using the same name as your app.)

    È possibile selezionare un altro piano del servizio app o crearne uno nuovo.You can either select another App Service plan or create a new one. Per altre informazioni sui piani di Servizi app e su come creare un nuovo piano in un piano tariffario diverso e nella località preferita, vedere Panoramica approfondita dei piani del servizio app di Azure.For more about App Services plans and how to create a new plan in a different pricing tier and in your desired location, see Azure App Service plans in-depth overview.

  4. Per Piano di Servizio appviene selezionato il piano predefinito nel livello Standard.For the App Service plan, the default plan (in the Standard tier) is selected. È anche possibile selezionare un piano diverso oppure crearne uno nuovo.You can also select a different plan, or create a new one. Le impostazioni del piano di servizio app determinano località, funzionalità, costo e risorse di calcolo associati all'app.The App Service plan's settings determine the location, features, cost, and compute resources associated with your app.

    Dopo aver scelto il piano, fare clic su Crea.After you decide on the plan, click Create. Verrà creato il back-end dell'app per dispositivi mobili.This creates the Mobile App backend.

Eseguire CreateViews.SQLRun CreateViews.SQL

L'app sottoposta a scaffolding contiene un file denominato createViews.sql.The scaffolded app contains a file called createViews.sql. Questo script deve essere eseguito sul database di destinazione.This script must be executed against the target database. La stringa di connessione per il database di destinazione può essere ottenuta dal servizio mobile di cui è stata eseguita la migrazione ed è disponibile nella pagina Impostazioni in Stringhe di connessione.The connection string for the target database can be obtained from your migrated mobile service from the Settings page under Connection Strings. È denominata MS_TableConnectionString.It is named MS_TableConnectionString.

È possibile eseguire lo script da SQL Server Management Studio o Visual Studio.You can run this script from within SQL Server Management Studio or Visual Studio.

Collegare il database esistente al servizio app:Link the existing database to your App Service:

  • Nel portale di Azureaprire il servizio app.In the Azure Portal, open your App Service.
  • Selezionare Tutte le impostazioni -> Connessioni dati.Select All Settings -> Data Connections.
  • Fare clic su + Aggiungi.Click on + Add.
  • Nell'elenco a discesa selezionare Database SQLIn the drop-down, select SQL Database
  • In Database SQL selezionare il database esistente e quindi fare clic su Seleziona.Under SQL Database, select your existing database, then click on Select.
  • In Stringa di connessione immettere il nome utente e la password per il database e quindi fare clic su OK.Under Connection string, enter the username and password for the database, then click on OK.
  • Nella pagina Add data connections (Aggiungi connessioni dati) fare clic su OK.In the Add data connections page, click on OK.

Per trovare il nome utente e la password, visualizzare la stringa di connessione per il database di destinazione nel servizio mobile migrato.The username and password can be found by viewing the Connection String for the target database in your migrated Mobile Service.

Configurare l'autenticazioneSet up authentication

Le app per dispositivi mobili di Azure consentono di configurare l'autenticazione di Azure Active Directory, Facebook, Google, Microsoft e Twitter all'interno del servizio.Azure Mobile Apps allows you to configure Azure Active Directory, Facebook, Google, Microsoft, and Twitter authentication within the service. L'autenticazione personalizzata dovrà essere sviluppata separatamente.Custom authentication will need to be developed separately. Per altre informazioni, vedere la documentazione relativa ai concetti dell'autenticazione e la guida introduttiva all'autenticazione.Refer to the [Authentication Concepts] documentation and [Authentication Quickstart] documentation for more information.

Aggiornare i client per dispositivi mobiliUpdate Mobile clients

Dopo aver reso operativo un back-end dell'app per dispositivi mobili, è possibile lavorare su una nuova versione dell'applicazione client che ne faccia uso.Once you have an operational Mobile App backend, you can work on a new version of your client application which consumes it. App per dispositivi mobili include anche una nuova versione degli SDK del client e, come nel caso dell'aggiornamento del server descritto in precedenza, sarà necessario rimuovere tutti i riferimenti agli SDK di Servizi mobili prima di installare le versioni di App per dispositivi mobili.Mobile Apps also includes a new version of the client SDKs, and similar to the server upgrade above, you will need to remove all references to the Mobile Services SDKs before installing the Mobile Apps versions.

Una delle principali modifiche tra le versioni è rappresentata dai costruttori che non richiedono più una chiave applicazione.One of the main changes between the versions is that the constructors no longer require an application key. Ora è sufficiente passare l'URL dell'app per dispositivi mobili.You now simply pass in the URL of your Mobile App. Ad esempio, nei client .NET, il costruttore MobileServiceClient ora è:For example, on the .NET clients, the MobileServiceClient constructor is now:

    public static MobileServiceClient MobileService = new MobileServiceClient(
        "https://contoso.azurewebsites.net" // URL of the Mobile App
    );

Per altre informazioni sull'installazione dei nuovi SDK e sull'uso della nuova struttura, visitare i collegamenti seguenti:You can read about installing the new SDKs and using the new structure via the links below:

Se l'applicazione usa le notifiche push, prendere nota delle specifiche istruzioni di registrazione per ogni piattaforma, perché sono state apportate alcune modifiche anche in questo ambito.If your application makes use of push notifications, make note of the specific registration instructions for each platform, as there have been some changes there as well.

Quando la nuova versione del client è pronta, provarla con il progetto server aggiornato.When you have the new client version ready, try it out against your upgraded server project. Dopo averne verificato il funzionamento, è possibile rilasciare una nuova versione dell'applicazione per i clienti.After validating that it works, you can release a new version of your application to customers. Infine, quando i clienti avranno ricevuto gli aggiornamenti, sarà possibile eliminare la versione di Servizi mobili dell'app.Eventually, once your customers have had a chance to receive these updates, you can delete the Mobile Services version of your app. A questo punto, sono stati aggiornati completamente a un'App per dispositivi mobili del servizio app utilizzando l’SDK più recente del server di App per dispositivi mobili.At this point, you have completely upgraded to an App Service Mobile App using the latest Mobile Apps server SDK.