Distribuire l'app nel servizio app di Azure usando FTP/S

Questo articolo illustra come usare FTP o FTPS per distribuire l'app Web, il back-end dell'app per dispositivi mobili o l'app per le API nel servizio app di Azure.

L'endpoint FTP/S per l'app è già attivo. Non è necessaria alcuna configurazione per abilitare la distribuzione FTP/S.

Nota

Quando l'autenticazione di base è disabilitata, la distribuzione FTP/S non funziona e non è possibile visualizzare o configurare le credenziali FTP nel Centro distribuzione dell'app.

Ottenere le credenziali di distribuzione

  1. Seguire le istruzioni in Configurare le credenziali di distribuzione per app Azure Servizio per copiare le credenziali dell'ambito applicazione o impostare le credenziali dell'ambito utente. È possibile connettersi all'endpoint FTP/S dell'app usando entrambe le credenziali.

  2. Creare il nome utente FTP nel formato seguente, a seconda dell'ambito delle credenziali scelto:

    Ambito applicazione Ambito utente
    <app-name>\$<app-name> <app-name>\<deployment-user>

    In servizio app l'endpoint FTP/S viene condiviso tra le app. Poiché le credenziali dell'ambito utente non sono collegate a una risorsa specifica, è necessario anteporre il nome utente con il nome dell'app come illustrato in precedenza.

Ottenere l'endpoint FTP/S

Nella stessa pagina di gestione dell'app in cui sono state copiate le credenziali di distribuzione (credenziali FTP del Centro>distribuzione) copiare l'endpoint FTPS.

Distribuire file in Azure

  1. Nel client FTP, ad esempio Visual Studio, Cyberduck o WinSCP, usare le specifiche informazioni raccolte per connettersi all'app.
  2. Copiare i file e la struttura di directory corrispondente nella directory /site/wwwroot in Azure o nella directory /site/wwwroot/App_Data/Jobs/ per i processi Web.
  3. Passare all'URL dell'app per verificare che l'applicazione venga eseguita correttamente.

Nota

A differenza delle distribuzioni basate su Git e della distribuzione Zip, la distribuzione FTP non supporta l'automazione della compilazione, ad esempio:

  • Ripristino delle dipendenze (ad esempio, automazioni NuGet, NPM, PIP e Composer)
  • Compilazione di file binari .NET
  • Generazione di web.config (esempio di Node.js)

Generare questi file necessari manualmente nel computer locale e quindi distribuirli insieme all'app.

Applicare FTPS

Per una maggiore sicurezza, è consigliabile consentire FTP solo su TLS/SSL. È anche possibile disabilitare FTP e FTPS se non si usa la distribuzione FTP.

  1. Nella pagina delle risorse dell'app in portale di Azure selezionare Impostazioni generali di configurazione>nel riquadro di spostamento a sinistra.

  2. Per disabilitare FTP non crittografato, selezionare FTPS Solo in stato FTP. Per disabilitare completamente FTP e FTPS, selezionare Disabilitato. Al termine, seleziona Salva. Se si usa solo FTPS, è necessario applicare TLS 1.2 o versione successiva passando alla pagina delle impostazioni TLS/SSL dell'app Web. TLS 1.0 e 1.1 non sono supportati solo con FTPS.

    Disable FTP/S

Cosa accade all'app durante la distribuzione?

Tutti i metodi di distribuzione supportati ufficialmente apportano modifiche ai file nella cartella /home/site/wwwroot dell'app. Questi file vengono usati per eseguire l'app. Pertanto, la distribuzione può non riuscire a causa di file bloccati. L'app potrebbe anche comportarsi in modo imprevedibile durante la distribuzione perché i file non vengono tutti aggiornati contemporaneamente. Questo comportamento è indesiderato per un'app rivolta al cliente. Per evitare questi problemi sono disponibili varie alternative:

Risolvere i problemi di distribuzione FTP

Come è possibile risolvere i problemi di distribuzione FTP?

Il primo passo per la risoluzione dei problemi di distribuzione FTP consiste nell'isolare un problema di distribuzione da un problema di runtime dell'applicazione.

Un problema di distribuzione comporta in genere che non venga distribuito alcun file o che vengano distribuiti file non corretti all'app. È possibile risolverlo analizzando la distribuzione FTP o selezionando un percorso di distribuzione alternativo (ad esempio il controllo del codice sorgente).

Un problema di runtime dell'applicazione determina in genere la distribuzione del set corretto di file all'app, ma un comportamento dell'app non corretto. È possibile risolverlo esaminando il comportamento di runtime del codice e analizzando i percorsi di errore specifici.

Per determinare se un problema è di distribuzione o di runtime, vedere Deployment vs. runtime issues (Problemi di distribuzione e di runtime).

Non sono in grado di eseguire il protocollo FTP e di pubblicare il codice. Come è possibile risolvere il problema?

Verificare di aver immesso il nome host e le credenziali corretti. Verificare anche che le porte FTP seguenti nel computer non siano bloccate da un firewall:

  • Porta di connessione del controllo FTP: 21, 990
  • Porta di connessione dati FTP: 989, 10001-10300

Come è possibile connettersi a FTP nel Servizio app di Azure tramite la modalità passiva?

Servizio app di Azure supporta la connessione tramite la modalità attiva e passiva. La modalità passiva è preferibile perché le macchine di distribuzione sono in genere protette da un firewall (nel sistema operativo o nell'ambito di una rete domestica o aziendale). Vedere un'esempio della documentazione WinSCP.

Perché la connessione non riesce quando si tenta di connettersi tramite FTPS usando la crittografia esplicita?

FTPS consente di stabilire la connessione protetta TLS in modo esplicito o implicito.

  • Se ci si connette con la crittografia implicita, la connessione viene stabilita tramite la porta 990.
  • Se ci si connette con la crittografia esplicita, la connessione viene stabilita tramite la porta 21.

Il formato url usato può influire sull'esito positivo della connessione e dipende anche dall'applicazione client usata. Il portale mostra l'URL come ftps://, ma si noti:

  • Se l'URL con cui ci si connette inizia con ftp://, la connessione è implicita sulla porta 21.
  • Se inizia con ftps://, la connessione è implicita come implicita e sulla porta 990.

Assicurarsi di non combinare entrambi, ad esempio il tentativo di connessione e ftps:// l'uso della porta 21, perché non riuscirà a connettersi, anche se si vuole eseguire la crittografia esplicita. Ciò è dovuto a una connessione esplicita che inizia come connessione FTP normale prima del metodo AUTH.

Come è possibile determinare il metodo usato per distribuire il servizio app Azure?

È possibile scoprire come è stata distribuita un'app controllando le impostazioni dell'applicazione. Se l'app è stata distribuita usando un URL del pacchetto esterno, verrà visualizzata l'impostazione WEBSITE_RUN_FROM_PACKAGE nelle impostazioni dell'applicazione con un valore URL. In alternativa, se è stata distribuita usando la distribuzione ZIP, dovrebbe essere visualizzata l'impostazione WEBSITE_RUN_FROM_PACKAGE con il valore 1. Se l'app è stata distribuita con Azure DevOps, la cronologia della distribuzione dovrebbe essere visualizzata nel portale di Azure DevOps. Se si usa Funzioni di Azure Core Tools, nella portale di Azure verrà visualizzata la cronologia di distribuzione.

Altre risorse