Uw app implementeren in Azure-app Service met behulp van FTP/S

In dit artikel leest u hoe u FTP of FTPS gebruikt om uw web-app, back-end van mobiele apps of API-app te implementeren in Azure-app Service.

Het FTP/S-eindpunt voor uw app is al actief. Er is geen configuratie nodig om FTP/S-implementatie in te schakelen.

Notitie

Wanneer FTP-basisverificatie is uitgeschakeld, werkt ftp/S-implementatie niet en kunt u FTP-referenties niet weergeven of configureren in het Implementatiecentrum van de app.

Implementatiereferenties ophalen

  1. Volg de instructies bij Implementatiereferenties configureren voor Azure-app Service om de referenties voor het toepassingsbereik te kopiëren of de referenties voor het gebruikersbereik in te stellen. U kunt verbinding maken met het FTP/S-eindpunt van uw app met behulp van beide referenties.

  2. Maak de FTP-gebruikersnaam in de volgende indeling, afhankelijk van uw keuze van referentiebereik:

    Toepassingsbereik Gebruikersbereik
    <app-name>\$<app-name> <app-name>\<deployment-user>

    In App Service wordt het FTP/S-eindpunt gedeeld tussen apps. Omdat de referenties van het gebruikersbereik niet zijn gekoppeld aan een specifieke resource, moet u de gebruikersnaam van het gebruikersbereik vooraf laten gaan met de naam van de app, zoals hierboven wordt weergegeven.

FTP/S-eindpunt ophalen

Kopieer het FTPS-eindpunt op dezelfde beheerpagina voor uw app waar u de implementatiereferenties (FTP-referenties van het Implementatiecentrum>) hebt gekopieerd.

Bestanden implementeren in Azure

  1. Gebruik vanuit uw FTP-client (bijvoorbeeld Visual Studio, Cyberduck of WinSCP) de verbindingsgegevens die u hebt verzameld om verbinding te maken met uw app.
  2. Kopieer uw bestanden en hun respectieve mapstructuur naar de map /site/wwwroot in Azure (of de map /site/wwwroot/App_Data/Jobs/for WebJobs).
  3. Blader naar de URL van uw app om te controleren of de app correct wordt uitgevoerd.

Notitie

In tegenstelling tot implementaties op basis van Git en Zip biedt FTP-implementatie geen ondersteuning voor buildautomatisering, zoals:

  • herstel van afhankelijkheden (zoals NuGet, NPM, PIP en Composer-automatiseringen)
  • compilatie van binaire .NET-bestanden
  • genereren van web.config (hier volgt een Node.js voorbeeld)

Genereer deze benodigde bestanden handmatig op uw lokale computer en implementeer ze vervolgens samen met uw app.

FTPS afdwingen

Voor verbeterde beveiliging moet u ALLEEN FTP via TLS/SSL toestaan. U kunt zowel FTP als FTPS ook uitschakelen als u geen FTP-implementatie gebruikt.

  1. Selecteer op de resourcepagina van uw app in De Azure-portal configuratie-algemene>instellingen in het linkernavigatievenster.

  2. Als u niet-versleutelde FTP wilt uitschakelen, selecteert u ALLEEN FTPS in FTP-status. Als u ZOWEL FTP als FTPS volledig wilt uitschakelen, selecteert u Uitgeschakeld. Selecteer Opslaan wanneer u klaar bent. Als u alleen FTPS gebruikt, moet u TLS 1.2 of hoger afdwingen door naar de pagina TLS/SSL-instellingen van uw web-app te gaan. TLS 1.0 en 1.1 worden niet ondersteund met ALLEEN FTPS.

    Disable FTP/S

Wat gebeurt er met mijn app tijdens de implementatie?

Alle officieel ondersteunde implementatiemethoden brengen wijzigingen aan in de bestanden in de map /home/site/wwwroot van uw app. Deze bestanden worden gebruikt om uw app uit te voeren. De implementatie kan dus mislukken vanwege vergrendelde bestanden. De app kan zich ook onvoorspelbaar gedragen tijdens de implementatie, omdat de bestanden niet allemaal tegelijk worden bijgewerkt. Dit gedrag is ongewenst voor een klantgerichte app. Er zijn een paar manieren om deze problemen te voorkomen:

Problemen met FTP-implementatie oplossen

Hoe kan ik problemen met FTP-implementatie oplossen?

De eerste stap voor het oplossen van problemen met FTP-implementatie is het isoleren van een implementatieprobleem vanuit een runtime-toepassingsprobleem.

Een implementatieprobleem resulteert doorgaans in geen bestanden of verkeerde bestanden die in uw app zijn geïmplementeerd. U kunt problemen oplossen door uw FTP-implementatie te onderzoeken of een alternatief implementatiepad (zoals broncodebeheer) te selecteren.

Een probleem met een runtime-toepassing resulteert doorgaans in de juiste set bestanden die zijn geïmplementeerd in uw app, maar onjuist app-gedrag. U kunt problemen oplossen door u te richten op codegedrag tijdens runtime en het onderzoeken van specifieke foutpaden.

Zie Implementatie versus runtime-problemen om een implementatie- of runtimeprobleem te bepalen.

Ik kan FTP niet gebruiken en mijn code niet publiceren. Hoe kan ik het probleem oplossen?

Controleer of u de juiste hostnaam en referenties hebt ingevoerd. Controleer ook of de volgende FTP-poorten op uw computer niet worden geblokkeerd door een firewall:

  • Poort voor FTP-beheerverbinding: 21, 990
  • Poort voor FTP-gegevensverbinding: 989, 10001-10300

Hoe kan ik via passieve modus verbinding maken met FTP in Azure-app Service?

Azure-app Service ondersteunt het maken van verbinding via zowel de actieve als passieve modus. De passieve modus heeft de voorkeur omdat uw implementatiemachines zich meestal achter een firewall bevinden (in het besturingssysteem of als onderdeel van een thuis- of bedrijfsnetwerk). Bekijk een voorbeeld uit de WinSCP-documentatie.

Waarom mislukt mijn verbinding wanneer ik verbinding wil maken via FTPS met behulp van expliciete versleuteling?

MET FTPS kunt u de beveiligde TLS-verbinding op expliciete of impliciete wijze tot stand brengen.

  • Als u verbinding maakt met impliciete versleuteling, wordt de verbinding tot stand gebracht via poort 990.
  • Als u verbinding maakt met expliciete versleuteling, wordt de verbinding tot stand gebracht via poort 21.

De URL-indeling die u gebruikt, kan van invloed zijn op het succes van de verbinding en is ook afhankelijk van de clienttoepassing die u gebruikt. In de portal wordt de URL weergegeven als ftps://, maar let op:

  • Als de URL waarmee u verbinding maakt, begint met ftp://, wordt de verbinding geïmpliceerd op poort 21.
  • Als deze begint, ftps://wordt de verbinding impliciet en op poort 990 geïmpliceerd.

Zorg ervoor dat u niet beide combineert, zoals een poging om verbinding te ftps:// maken met en poort 21 te gebruiken, omdat deze geen verbinding kan maken, zelfs als u expliciete versleuteling wilt uitvoeren. Dit wordt veroorzaakt door een expliciete verbinding die wordt gestart als een gewone FTP-verbinding vóór de AUTH-methode.

Hoe kan ik bepalen welke methode is gebruikt voor het implementeren van mijn Azure-app Service?

U kunt zien hoe een app is geïmplementeerd door de toepassingsinstellingen te controleren. Als de app is geïmplementeerd met behulp van een URL van een extern pakket, ziet u de WEBSITE_RUN_FROM_PACKAGE instelling in de toepassingsinstellingen met een URL-waarde. Of als deze is geïmplementeerd met behulp van zip deploy, ziet u de WEBSITE_RUN_FROM_PACKAGE instelling met een waarde van 1. Als de app is geïmplementeerd met behulp van Azure DevOps, ziet u de implementatiegeschiedenis in de Azure DevOps-portal. Als Azure Functions Core Tools wordt gebruikt, ziet u de implementatiegeschiedenis in Azure Portal.

Meer resources