Déployer votre application dans Azure App Service avec FTP/S

Cet article vous explique comment utiliser FTP ou FTPS pour déployer votre application web, votre backend d’applications mobiles ou votre application API dans Azure App Service.

Le point de terminaison FTP/S de votre application est déjà actif. Aucune configuration n’est nécessaire pour activer le déploiement FTP/S.

Remarque

Lorsque l'authentification de base FTP est désactivée, le déploiement FTP/S ne fonctionne pas et vous ne pouvez pas afficher ou configurer les informations d'identification FTP dans le centre de déploiement de l'application.

Obtenir les informations d’identification de déploiement

  1. Suivez les instructions de la rubrique Configurer les informations d’identification de déploiement pour Azure App Service afin de copier les informations d’identification pour la portée de l’application ou de l’utilisateur. Vous pouvez vous connecter au point de terminaison FTP/S de votre application à l’aide de ces informations d’identification.

  2. Élaborez le nom d’utilisateur FTP au format suivant, en fonction de votre choix de portée des informations d’identification :

    Portée de l’application Portée de l’utilisateur
    <app-name>\$<app-name> <app-name>\<deployment-user>

    Dans App Service, le point de terminaison FTP/S est partagé entre les applications. Étant donné que les informations d’identification pour la portée de l’utilisateur ne sont pas liées à une ressource spécifique, vous devez ajouter devant le nom d’utilisateur pour la portée de l’utilisateur le nom de l’application, comme ci-dessus.

Obtenir le point de terminaison FTP/S

Dans la page de gestion de votre application dans laquelle vous avez copié les informations d’identification (Centre de déploiement>Informations d’identification FTP), copiez le Point de terminaison FTPS.

Déployer des fichiers sur Azure

  1. Dans votre client FTP (par exemple, Visual Studio, Cyberduck ou WinSCP), utilisez les informations de connexion que vous avez recueillies pour vous connecter à votre application.
  2. Copiez vos fichiers et la structure de répertoire qui leur correspond dans le répertoire /site/wwwroot dans Azure (ou dans le répertoire /site/wwwroot/App_Data/Jobs/ pour WebJobs).
  3. Accédez à l’URL de votre application pour vérifier que l’application s’exécute correctement.

Notes

Contrairement aux déploiements basés sur Git et au déploiement Zip, un déploiement FTP ne prend pas en charge l’automatisation de la génération, par exemple :

  • restauration de dépendances (par exemple, des automatisations NuGet, NPM, PIP et Composer)
  • compilation de fichiers binaires .NET
  • génération du fichier web.config (dont voici un exemple Node.js)

Générez ces fichiers requis manuellement sur votre ordinateur local, puis déployez-les avec votre application.

Appliquer le protocole FTPS

Pour une sécurité renforcée, vous devez autoriser FTP sur TLS/SSL uniquement. Vous pouvez également désactiver FTP et FTPS si vous n’utilisez pas de déploiement FTP.

  1. Dans la page des ressources de votre application dans le portail Azure, sélectionnez Configuration>Paramètres généraux dans le volet de navigation gauche.

  2. Pour désactiver le protocole FTP non chiffré, sélectionnez FTPS uniquement dans État FTP. Pour désactiver complètement les protocoles FTP et FTPS, sélectionnez Désactivé. Lorsque vous avez terminé, sélectionnez Enregistrer. Si vous utilisez FTPS uniquement, vous devez appliquer TLS 1.2 ou une version ultérieure en accédant à la page Paramètres TLS/SSL de votre application web. TLS 1.0 et 1.1 ne sont pas pris en charge avec FTPS uniquement.

    Disable FTP/S

Que se passe-t-il au niveau de mon application pendant le déploiement ?

Toutes les méthodes de déploiement officiellement prises en charge apportent des modifications aux fichiers dans le dossier /home/site/wwwroot de votre application. Ces fichiers sont utilisés pour exécuter votre application. Par conséquent, le déploiement peut échouer si des fichiers sont verrouillés. L’application peut également se comporter de façon imprévisible pendant le déploiement, car tous les fichiers ne sont pas tous mis à jour en même temps. Cela n’est pas souhaitable pour une application faisant face au client. Il existe différentes manières d’éviter ces problèmes :

Résoudre les problèmes d’un déploiement FTP

Comment puis-je résoudre les problèmes d’un déploiement FTP ?

La première étape de résolution des problèmes d’un déploiement FTP consiste à isoler un problème de déploiement d’un problème d’application à l’exécution.

Un problème de déploiement se produit généralement si aucun fichier ou des fichiers incorrects sont déployés sur votre application. Vous pouvez le résoudre en examinant votre déploiement FTP ou en sélectionnant un autre chemin d’accès de déploiement (comme un contrôle de code source).

Un problème d’application à l’exécution se produit généralement si l’ensemble de fichiers approprié est déployé sur votre application, mais que le comportement de l’application est incorrect. Vous pouvez le résoudre en vous concentrant sur le comportement du code lors de l’exécution et en examinant des chemins d’accès d’échec spécifiques.

Pour déterminer un problème de déploiement ou d’exécution, consultez Deployment vs. runtime issues (Problèmes de déploiement et d’exécution).

Je ne peux pas envoyer par FTP et publier mon code. Comment puis-je résoudre le problème ?

Vérifiez que vous avez entré le nom d’hôte et les informations d’identification appropriés. Vérifiez également que les ports FTP suivants de votre machine ne sont pas bloqués par un pare-feu :

  • Port de connexion de contrôle FTP :
  • Port de connexion de données FTP : 989, 10001-10300

Comment puis-je me connecter à FTP dans Azure App Service via le mode passif ?

Azure App Service prend en charge la connexion via les modes actif et passif. Le mode passif est recommandé, car vos machines de déploiement se trouvent généralement derrière un pare-feu (dans le système d’exploitation ou faisant partie d’un réseau domestique ou d’entreprise). Consultez un exemple dans la documentation de WinSCP.

Pourquoi ma connexion échoue-t-elle lorsque je tente de me connecter via FTPS en utilisant le chiffrement explicite ?

FTPS permet d’établir la connexion sécurisée TLS de manière explicite ou implicite.

  • Si vous vous connectez avec le chiffrement implicite, la connexion est établie via le port 990.
  • Si vous vous connectez avec le chiffrement explicite, la connexion est établie via le port 21.

Le format d’URL que vous utilisez peut affecter la réussite de la connexion. Il dépend également de l’application cliente que vous utilisez. Le portail affiche l’URL sous la forme ftps://, mais notez ceci :

  • Si l’URL à laquelle vous vous connectez commence par ftp://, la connexion s’établit implicitement sur le port 21.
  • Si elle commence par ftps://, la connexion s’établit implicitement sur le port 990.

Veillez à ne pas mélanger les deux, par exemple en tentant de vous connecter à ftps://, et en utilisant le port 21, car la connexion échouera, même si vous souhaitez effectuer un chiffrement explicite. Cela est dû au fait qu’une connexion explicite démarre en tant que connexion FTP en clair avant la méthode AUTH.

Comment puis-je déterminer la méthode utilisée pour déployer mon Azure App Service ?

Vous pouvez savoir comment une application a été déployée en vérifiant les paramètres de l’application. Si l’application a été déployée à l’aide d’une URL de package externe, vous devez voir le paramètre WEBSITE_RUN_FROM_PACKAGE dans les paramètres de l’application avec une valeur d’URL. Ou, si elle a été déployée à l’aide du déploiement zip, vous devez voir le paramètre WEBSITE_RUN_FROM_PACKAGE avec la valeur 1. Si l’application a été déployée à l’aide d’Azure DevOps, vous devez voir l’historique de déploiement dans le portail Azure DevOps. Si Azure Functions Core Tools est utilisé, vous devez voir l’historique de déploiement dans le portail Azure.

Plus de ressources