Implementación de la aplicación en Azure App Service mediante FTP/SDeploy your app to Azure App Service using FTP/S

En este artículo se muestra cómo usar FTP o FTPS para implementar la aplicación web, el back-end de la aplicación móvil o la aplicación de API en Azure App Service.This article shows you how to use FTP or FTPS to deploy your web app, mobile app backend, or API app to Azure App Service.

El punto de conexión FTP/S de la aplicación ya está activo.The FTP/S endpoint for your app is already active. No se necesita ninguna configuración para habilitar la implementación de FTP/S.No configuration is necessary to enable FTP/S deployment.

Apertura del panel FTPOpen FTP dashboard

En Azure Portal, abra la página de recursos de la aplicación.In the Azure portal, open your app's resource page.

Para abrir el panel FTP, haga clic en Centro de implementación > FTP > Panel.To open the FTP dashboard, click Deployment Center > FTP > Dashboard.

Apertura del panel FTP

Obtención de la información de conexión para FTPGet FTP connection information

En el panel FTP, haga clic en Copiar para copiar las credenciales de aplicación y el punto de conexión FTPS.In the FTP dashboard, click Copy to copy the FTPS endpoint and app credentials.

Copia de información de FTP

Se recomienda usar las Credenciales de la aplicación para implementar en su aplicación, porque son exclusivas de cada aplicación.It's recommended that you use App Credentials to deploy to your app because it's unique to each app. Sin embargo, si hace clic en Credenciales de usuario, puede definir credenciales a nivel de usuario que puede usar para el inicio de sesión FTP/S en todas las aplicaciones de App Service de la suscripción.However, if you click User Credentials, you can set user-level credentials that you can use for FTP/S login to all App Service apps in your subscription.

Nota

Autenticación en un punto de conexión FTP o FTPS con un nombre de usuario de requirers las credenciales de nivel de usuario en el formato siguiente:Authenticating to an FTP/FTPS endpoint using user-level credentials requirers a username in the following format:

<app-name>\<user-name>

Puesto que las credenciales de nivel de usuario están vinculadas al usuario y no un recurso específico, el nombre de usuario debe tener este formato para dirigir la acción de inicio de sesión para el punto de conexión de la aplicación adecuada.Since user-level credentials are linked to the user and not a specific resource, the username must be in this format to direct the sign-in action to the right app endpoint.

Implementación de archivos en AzureDeploy files to Azure

  1. Desde el cliente de FTP (por ejemplo, Visual Studio, Cyberduck o WinSCP), use la información de conexión recopilada para conectarse a la aplicación.From your FTP client (for example, Visual Studio, Cyberduck, or WinSCP), use the connection information you gathered to connect to your app.
  2. Copie los archivos y la estructura de directorio correspondiente al directorio /site/wwwroot en Azure (o el directorio /site/wwwroot/App_Data/Jobs/ para WebJobs).Copy your files and their respective directory structure to the /site/wwwroot directory in Azure (or the /site/wwwroot/App_Data/Jobs/ directory for WebJobs).
  3. Vaya a la dirección URL de la aplicación para comprobar que la aplicación se está ejecutando correctamente.Browse to your app's URL to verify the app is running properly.

Nota

A diferencia de las implementaciones basadas en Git, la implementación de FTP no es compatible con las automatizaciones de implementación siguientes:Unlike Git-based deployments, FTP deployment doesn't support the following deployment automations:

  • restauraciones de dependencias (por ejemplo, automatizaciones de NuGet, NPM, PIP y Composer)dependency restores (such as NuGet, NPM, PIP, and Composer automations)
  • compilación de archivos binarios de .NETcompilation of .NET binaries
  • generación del archivo web.config (aquí se muestra un ejemplo de Node.js)generation of web.config (here is a Node.js example)

Genere estos archivos necesarios de forma manual en la máquina local e impleméntelos luego junto con la aplicación.Generate these necessary files manually on your local machine, and then deploy them together with your app.

Aplicación de FTPSEnforce FTPS

Para mejorar la seguridad, permita solo FTP a través de SSL.For enhanced security, you should allow FTP over SSL only. También puede deshabilitar FTP y FTPS si no utiliza la implementación de FTP.You can also disable both FTP and FTPS if you don't use FTP deployment.

En la página de recursos de la aplicación de Azure Portal, seleccione Configuración de la aplicación en el panel de navegación izquierdo.In your app's resource page in Azure portal, select App settings in the left navigation.

Para deshabilitar FTP sin cifrar, seleccione Solo FTPS.To disable unencrypted FTP, select FTPS Only. Para deshabilitar completamente el FTP y FTPS, seleccione Deshabilitar.To disable both FTP and FTPS entirely, select Disable. Cuando termine, haga clic en Guardar.When finished, click Save. Si usa Solo FTPS debe exigir TLS 1.2 o posterior; para ello, navegue a la hoja Configuración de SSL de la aplicación web.If using FTPS Only you must enforce TLS 1.2 or higher by navigating to the SSL settings blade of your web app. TLS 1.0 y 1.1 no son compatibles con Solo FTPS.TLS 1.0 and 1.1 are not supported with FTPS Only.

Deshabilitación de FTP/S

Automatizar con scriptsAutomate with scripts

Para la implementación FTP con el uso de la CLI de Azure, vea Creación de una aplicación web e implementación de archivos con FTP (CLI de Azure).For FTP deployment using Azure CLI, see Create a web app and deploy files with FTP (Azure CLI).

Para la implementación FTP con Azure PowerShell, vea Carga de archivos en una aplicación web con FTP (PowerShell).For FTP deployment using Azure PowerShell, see Upload files to a web app using FTP (PowerShell).

¿Qué ocurre con mi aplicación durante la implementación?What happens to my app during deployment?

Todos los métodos de implementación admitidos oficialmente tienen algo en común: realizan cambios en los archivos de la carpeta /home/site/wwwroot de la aplicación.All the officially supported deployment methods have one thing in common: they make changes to the files in the /home/site/wwwroot folder of your app. Estos son los mismos archivos que se ejecutan en producción.These are the same files that are run in production. Por tanto, se puede producir un error durante la implementación debido a archivos bloqueados, o puede que la aplicación de producción tenga un comportamiento impredecible durante la implementación debido a que no todos los archivos se actualizan simultáneamente.Therefore, the deployment can fail due to locked files, or the app in production may have unpredictable behavior during deployment because not all the files are updated simultaneously. Hay varias formas de evitar estos problemas:There are a few different ways to avoid these issues:

Solución de problemas de implementación de FTPTroubleshoot FTP deployment

¿Cómo se solucionan los problemas de implementación de FTP?How can I troubleshoot FTP deployment?

El primer paso para solucionar los problemas de implementación de FTP es aislar los de implementación de los de la aplicación en tiempo de ejecución.The first step for troubleshooting FTP deployment is isolating a deployment issue from a runtime application issue.

Un problema de implementación suele terminar en la ausencia de archivos o en la implementación de archivos incorrectos en la aplicación.A deployment issue typically results in no files or wrong files deployed to your app. Puede solucionar el problema al investigar la implementación FTP o seleccionar una ruta de implementación alternativa (como el control de código fuente).You can troubleshoot by investigating your FTP deployment or selecting an alternate deployment path (such as source control).

Los problemas de aplicación en tiempo de ejecución suelen provocar la implementación del conjunto de archivos correctos en la aplicación, pero un comportamiento incorrecto de esta.A runtime application issue typically results in the right set of files deployed to your app but incorrect app behavior. Esto se puede solucionar si nos centramos en el comportamiento del código en tiempo de ejecución e investigamos las rutas de acceso con error concretas.You can troubleshoot by focusing on code behavior at runtime and investigating specific failure paths.

Para determinar un problema de implementación o de tiempo de ejecución, consulte Deployment vs. runtime issues (Problemas de implementación frente a los de tiempo de ejecución).To determine a deployment or runtime issue, see Deployment vs. runtime issues.

No puedo usar FTP y publicar mi código.I'm not able to FTP and publish my code. ¿Cómo se resuelve este problema?How can I resolve the issue?

Compruebe que ha escrito las credenciales y el nombre de host correctos.Check that you've entered the correct hostname and credentials. Compruebe también que los siguientes puertos FTP de la máquina no estén bloqueados por firewall:Check also that the following FTP ports on your machine are not blocked by a firewall:

  • Puerto de conexión de control FTP: 21FTP control connection port: 21
  • Puerto de conexión de datos de FTP: 989, 10001-10300FTP data connection port: 989, 10001-10300

¿Cómo me conecto a FTP en Azure App Service con el modo pasivo?How can I connect to FTP in Azure App Service via passive mode?

Azure App Service permite la conexión activa y pasiva.Azure App Service supports connecting via both Active and Passive mode. Se recomienda el modo pasivo, ya que las máquinas de implementación suelen estar protegidas por firewall (del sistema operativo o como parte de una red particular o profesional).Passive mode is preferred because your deployment machines are usually behind a firewall (in the operating system or as part of a home or business network). Consulte un ejemplo en la documentación de WinSCP.See an example from the WinSCP documentation.

Pasos siguientesNext steps

Para ver escenarios de implementación más avanzados, pruebe Implementación en Azure con Git.For more advanced deployment scenarios, try deploying to Azure with Git. La implementación basada en Git en Azure permite el control de versiones, la restauración de paquetes, MSBuild y mucho más.Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

Más recursosMore resources