Condividi tramite


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

Questo articolo illustra come usare FTP (File Transfer Protocol) o FTPS (File Transfer Protocol Secure) per distribuire l'app Web, il back-end dell'app per dispositivi mobili o l'app per le API nel servizio app di Azure. Non è necessaria alcuna configurazione per abilitare la distribuzione di app FTP o FTPS. L'endpoint FTP/S per l'app è già attivo.

Annotazioni

Sia le credenziali di pubblicazione dell'autenticazione di base SCM che le credenziali di pubblicazione dell'autenticazione di base FTP devono essere abilitate per il funzionamento della distribuzione FTP/S. Quando l'autenticazione di base è disabilitata, la distribuzione FTP/S non funziona e non è possibile visualizzare o configurare le credenziali FTP/S nel Centro distribuzione dell'app.

Ottenere le credenziali di distribuzione

Per ottenere le credenziali per la distribuzione, seguire le istruzioni in Configurare le credenziali di distribuzione per il servizio app di Azure. Copia le qualifiche per l'ambito applicazione della tua app o imposta e copia le qualifiche per l'ambito utente. È possibile connettersi all'endpoint FTP/S dell'app usando uno dei set di credenziali.

Per le credenziali dell'ambito dell'applicazione, il formato del nome utente FTP/S è <app-name>\$<app-name>. Per le credenziali dell'ambito utente, il formato del nome utente FTP/S è <app-name>\<username>. Gli endpoint FTP/S del servizio app vengono condivisi tra le app e poiché le credenziali dell'ambito utente non sono collegate a una risorsa specifica, è necessario anteporre il nome utente con il nome dell'app.

Ottenere l'endpoint FTP/S

Per ottenere l'endpoint FTP/S:

Nella pagina del portale di Azure per l'app selezionare Centro distribuzione in Distribuzione nel menu di spostamento a sinistra. Nella scheda Credenziali FTPS copiare l'URL dell'endpoint FTPS .

Distribuire file su Azure

Per distribuire file in Azure con FTP/S:

  1. Dal client FTP/S, ad esempio Visual Studio, Cyberduck o WinSCP, usare le informazioni di connessione per connettersi all'app.
  2. Copia i tuoi file e la struttura delle loro directory nella directory /site/wwwroot in Azure o nella directory /site/wwwroot/App_Data/Jobs/ per i WebJobs.
  3. Passare all'URL dell'app per verificare che l'applicazione venga eseguita correttamente.

Annotazioni

A differenza della distribuzione Git locale e della distribuzione ZIP, la distribuzione FTP/S non supporta l'automazione della compilazione, ad esempio:

  • Ripristinare le dipendenze come NuGet, NPM, PIP e Composer tramite automazione.
  • Compilazione di file binari .NET.
  • Generazione di un fileweb.config .

Devi generare questi file necessari manualmente nel computer locale e quindi distribuirli con l'app. Per un esempio di Node.jsweb.config , vedere Uso di un web.config personalizzato per le app Node.

Imponi FTPS

FTPS è una forma più sicura di FTP che usa Transport Layer Security (TLS) e Secure Sockets Layer (SSL). Per una maggiore sicurezza, è necessario applicare FTPS su TLS/SSL. È anche possibile disabilitare FTP e FTPS se non si usa la distribuzione FTP.

Per disabilitare FTP non crittografato:

  1. Nella pagina del portale di Azure per l'app selezionare Configurazione in Impostazioni nel menu di spostamento a sinistra.

  2. Nella scheda Impostazioni generali della pagina Configurazione , in Impostazioni della piattaforma selezionare FTPS solo per lo stato FTP. In alternativa, per disabilitare completamente FTP e FTPS, selezionare Disabilitato.

    Screenshot che mostra come impostare lo stato FTP su solo FTPS.

  3. Se si seleziona solo FTPS, assicurarsi che TLS 1.2 o versione successiva sia applicato per Impostazioni TLS in ingresso minime. TLS 1.0 e 1.1 non sono supportati solo per FTPS.

  4. Seleziona Salva nella parte superiore della pagina.

Risolvere i problemi di distribuzione FTP/S

Cosa accade all'app durante la distribuzione che può causare un errore o un comportamento imprevedibile?

I metodi di distribuzione ufficialmente supportati apportano modifiche ai file nella cartella /home/site/wwwroot usata per eseguire l'app. La distribuzione può non riuscire a causa di file bloccati. L'app potrebbe anche comportarsi in modo imprevedibile durante la distribuzione se i file non vengono aggiornati contemporaneamente, che è indesiderato per un'app rivolta al cliente.

Esistono alcuni modi per evitare questi problemi.

Qual è il primo passaggio per la risoluzione dei problemi relativi alla distribuzione FTP/S?

Il primo passaggio per la risoluzione dei problemi di distribuzione FTP/S consiste nel distinguere i problemi di distribuzione e i problemi dell'applicazione di runtime.

  • Un problema di distribuzione comporta in genere che non venga distribuito alcun file o che vengano distribuiti file non corretti all'app. È possibile risolvere i problemi esaminando la distribuzione FTP/S o selezionando un percorso di distribuzione alternativo, ad esempio il controllo del codice sorgente.

  • Un problema dell'applicazione di runtime comporta in genere i file corretti distribuiti nell'app, ma un comportamento errato dell'app. È possibile risolvere i problemi concentrandosi sul comportamento del codice in fase di esecuzione e analizzando percorsi di errore specifici.

Per altre informazioni, vedere Problemi di distribuzione e di runtime.

Perché non è possibile eseguire FTP/S e pubblicare il codice?

Verificare di aver immesso il nome host e le credenziali corretti. Assicurarsi anche che un firewall non blocchi le porte FTP/S seguenti nel computer:

  • Porte di connessione di controllo FTP/S: 21, 990
  • Porte di connessione dati FTP/S: 989, 10001-10300

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

Il servizio app di Azure supporta la connessione tramite modalità attive e passive. La modalità passiva è preferibile perché i computer di distribuzione si trovano in genere dietro un firewall nel sistema operativo o come parte di una rete domestica o aziendale. Per un esempio di connessione in modalità passiva, vedere La pagina connessione (finestra di dialogo Impostazioni sito avanzate).For an example of a passive mode connection, see The Connection Page (Advanced Site Settings dialog).

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

FTPS consente di stabilire una connessione sicura TLS esplicita o implicita.

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

Il formato url usato può influire sull'esito positivo della connessione e dipende dall'applicazione client. Il portale mostra l'URL come ftps://, ma se l'URL con cui ci si connette inizia con ftp://, la connessione è implicita sulla porta 21. Se l'URL inizia con ftps://, la connessione è implicita e si presume che avvenga sulla porta 990.

Assicurati di non combinare le impostazioni, come tentare di connetterti a ftps:// utilizzando la porta 21. Questa impostazione non riesce a connettersi anche usando la crittografia esplicita, perché una connessione esplicita viene avviata come connessione FTP normale prima del AUTH metodo .

Come è possibile determinare quale metodo è stato usato per distribuire l'app?

È possibile scoprire come è stata distribuita un'app controllando le impostazioni dell'applicazione nella relativa pagina del portale di Azure. Selezionare Variabili di ambiente in Impostazioni nel menu di spostamento a sinistra. Nella scheda Impostazioni app :

  • Se l'app è stata distribuita usando un URL del pacchetto esterno, l'impostazione WEBSITE_RUN_FROM_PACKAGE viene visualizzata nelle impostazioni dell'applicazione con un valore URL.
  • Se l'app è stata distribuita usando la distribuzione ZIP, l'impostazione WEBSITE_RUN_FROM_PACKAGE viene visualizzata con il valore 1.

Se l'app è stata distribuita con Azure DevOps, è possibile visualizzare la cronologia di distribuzione nel portale di Azure DevOps. Se è stato usato Azure Functions Core Tools, è possibile visualizzare la cronologia di distribuzione nel portale di Azure.