Implementación de la aplicación en Azure App Service mediante 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.
El punto de conexión FTP/S de la aplicación ya está activo. No se necesita ninguna configuración para habilitar la implementación de FTP/S.
Nota
La página Centro de desarrollo (clásico) en Azure Portal, que es la experiencia de implementación anterior, quedará en desuso en marzo de 2021. Este cambio no afectará a ninguna configuración de implementación existente en la aplicación y puede continuar con la administración de la implementación de aplicaciones en la página Centro de implementación.
Obtención de credenciales de implementación
Siga las instrucciones de Configuración de credenciales de implementación para Azure App Service para copiar las credenciales del ámbito de aplicación o establecer las credenciales del ámbito de usuario. Puede conectarse al punto de conexión FTP/S de la aplicación mediante cualquiera de esas credenciales.
Cree el nombre de usuario de FTP con el siguiente formato, según su elección del ámbito de las credenciales:
Ámbito de aplicación Ámbito de usuario <app-name>\$<app-name>
<app-name>\<deployment-user>
En App Service, el punto de conexión FTP/S se comparte entre las aplicaciones. Dado que las credenciales de ámbito de usuario no están vinculadas a un recurso específico, el nombre de la aplicación se debe anteponer al nombre de usuario del ámbito de usuario, tal como se mostró anteriormente.
Obtención del punto de conexión FTP/S
En la misma página de administración de la aplicación en la que ha copiado las credenciales de implementación [Centro de implementación>FTP Credentials (Credenciales de FTP)], copie el Punto de conexión de FTPS.
Implementación de archivos en Azure
- 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.
- Copie los archivos y la estructura de directorio correspondiente al directorio /site/wwwrooten Azure (o el directorio /site/wwwroot/App_Data/Jobs/ para WebJobs).
- Vaya a la dirección URL de la aplicación para comprobar que la aplicación se está ejecutando correctamente.
Nota
A diferencia de las implementaciones basadas en Git y de la implementación de ZIP, la implementación de FTP no admite la automatización de la compilación, como:
- restauraciones de dependencias (por ejemplo, automatizaciones de NuGet, NPM, PIP y Composer)
- compilación de archivos binarios de .NET
- generación del archivo web.config (aquí se muestra un ejemplo de Node.js)
Genere estos archivos necesarios de forma manual en la máquina local e impleméntelos luego junto con la aplicación.
Aplicación de FTPS
Para mejorar la seguridad, permita FTP a través de TLS/SSL únicamente. También puede deshabilitar FTP y FTPS si no utiliza la implementación de FTP.
En la página de recursos de la aplicación de Azure Portal, seleccione Configuración>Configuración general en el panel de navegación izquierdo.
Para deshabilitar FTP sin cifrar, seleccione Solo FTPS en Estado FTP. Para deshabilitar completamente tanto FTP como FTPS, seleccione Deshabilitado. Cuando termine, haga clic en Guardar. Si usa Solo FTPS debe exigir TLS 1.2, o cualquier versión posterior; para ello, navegue a la hoja Configuración de TLS/SSL de la aplicación web. TLS 1.0 y 1.1 no son compatibles con Solo FTPS.
¿Qué ocurre con mi aplicación durante la implementación?
Todos los métodos de implementación admitidos oficialmente realizan cambios en los archivos de la carpeta /home/site/wwwroot de la aplicación. Estos archivos se usan para ejecutar la aplicación. Por tanto, se puede producir un error en la implementación debido a archivos bloqueados. Es posible que la aplicación también se comporte de forma impredecible durante la implementación porque no todos los archivos se hayan actualizado al mismo tiempo. Este comportamiento no es deseable en una aplicación orientada al cliente. Hay varias formas de evitar estos problemas:
- Ejecute la aplicación directamente desde el paquete ZIP, sin descomprimirla.
- Detenga la aplicación o habilite el modo sin conexión durante la implementación. Para más información, consulte Deal with locked files during deployment (Tratamiento de archivos bloqueados durante la implementación).
- Realice la implementación en un espacio de ensayo con el intercambio automático activado.
Solución de problemas de implementación de FTP
- ¿Cómo se solucionan los problemas de implementación de FTP?
- No puedo usar FTP y publicar mi código. ¿Cómo se resuelve este problema?
- ¿Cómo me conecto a FTP en Azure App Service con el modo pasivo?
¿Cómo se solucionan los problemas de implementación de FTP?
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.
Un problema de implementación suele terminar en la ausencia de archivos o en la implementación de archivos incorrectos en la aplicación. 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).
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. 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.
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).
No puedo usar FTP y publicar mi código. ¿Cómo se resuelve este problema?
Compruebe que ha escrito el nombre de host y las credenciales correctos. Compruebe también que los siguientes puertos FTP de la máquina no estén bloqueados por firewall:
- Puerto de conexión de control de FTP:
- Puerto de conexión de datos de FTP: 989, 10001-10300
¿Cómo me conecto a FTP en Azure App Service con el modo pasivo?
Azure App Service permite la conexión activa y pasiva. 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). Consulte un ejemplo en la documentación de WinSCP.
¿Cómo puedo determinar el método que se usó para implementar mi Azure App Service?
Supongamos que toma el control de la propiedad de una aplicación y desease averiguar cómo se implementó Azure App Service para que pueda realizar cambios e implementarlos. Puede determinar cómo se implementó Azure App Service comprobando la configuración de la aplicación. Si la aplicación se implementó mediante una dirección URL de paquete externo, verá la configuración de WEBSITE_RUN_FROM_PACKAGE en la configuración de la aplicación con un valor de dirección URL. O bien, si se implementó mediante la implementación zip, verá la configuración de WEBSITE_RUN_FROM_PACKAGE con un valor de 1. Si la aplicación se implementó mediante Azure DevOps, verá el historial de implementación en el portal de Azure DevOps. Si se usó Azure Functions Core Tools, verá el historial de implementación en Azure Portal.