使用 FTP/S 将应用部署到 Azure 应用服务

本文介绍了如何使用 FTP 或 FTPS 将 Web 应用、移动应用后端或 API 应用部署到 Azure App Service

应用的 FTP/S 终结点已处于活动状态。 无需配置即可启用 FTP / S 部署。

步骤 1:设置部署凭据

若要访问应用的 FTP 服务器,首先需要部署凭据。

若要设置或重置部署凭据,请参阅 Azure App Service 部署凭据。 本教程演示如何使用用户级凭据。

步骤 2:获取 FTP 连接信息

  1. Azure 门户中,打开应用的资源页
  2. 在左侧导航中选择“概述”,并记下“FTP/部署用户”、“FTP 主机名”和“FTPS 主机名”的值。

    FTP 连接信息

    Note

    Azure 门户中显示的“FTP/部署用户”值包括应用名称,用于为 FTP 服务器提供适当的上下文。 在左侧导航中选择“属性”时,可以找到相同信息。

    此外,永远不会显示部署密码。 如果忘记了部署密码,请返回到 步骤 1 ,重置部署密码。

步骤 3:将文件部署到 Azure

  1. 从 FTP 客户端(例如 Visual StudioFileZilla),使用收集到的连接信息连接到应用。
  2. 将文件及其各自的目录结构复制到 Azure 中的 /site/wwwroot 目录(对于 Web 作业,复制到 /site/wwwroot/App_Data/Jobs/ 目录)。
  3. 浏览到应用的 URL,以验证该应用是否正在正常运行。

Note

基于 Git 的部署不同,FTP 部署不支持以下部署自动化:

  • 还原依赖项(如 NuGet、NPM、PIP 和 Composer 自动化)
  • 编译 .NET 二进制文件
  • 生成 web.config(以下提供一个 Node.js 示例

在本地计算机上手动生成这些必要的文件,并将它们与应用一起部署。

强制实施 FTPS

为了增强安全性,只应启用基于 SSL 的 FTP。 如果不使用 FTP 部署,也可禁用 FTP 和 FTPS。

如果应用的资源页位于 Azure 门户中,请在左侧导航中选择“应用设置”。

若要禁用未加密的 FTP,请选择“仅 FTPS”。 若要将 FTP 和 FTPS 都禁用,请选择“禁用”。 完成后,单击“保存”。

禁用 FTP/S

使用脚本自动执行

若要使用 Azure CLI 进行 FTP 部署,请参阅创建 Web 应用并使用 FTP (Azure CLI) 部署文件

若要使用 Azure PowerShell 进行 FTP 部署,请参阅使用 FTP (PowerShell) 将文件上传到 Web 应用

部署期间我的应用会发生什么情况?

所有官方支持的部署方法均具有一个共同点:它们会更改应用的 /site/home/wwwroot 文件夹中的文件。 这些文件与生产中运行的文件相同。 因此,部署可能由于存在锁定文件而失败,或者由于并非所有文件同时更新,生产中的应用在部署期间可能出现不可预测的行为。 可通过多种不同方式避免这些问题:

排查 FTP 部署问题

如何排查 FTP 部署问题?

若要排查 FTP 部署问题,第一步是厘清部署问题和运行时应用程序问题。

部署问题通常会导致无文件部署到应用,或者部署到应用的文件错误。 可以通过调查 FTP 部署情况,或者选择备用部署路径(例如源代码管理)来进行故障排除。

出现运行时应用程序问题时,通常部署到应用的文件集是正确的,但应用行为不正确。 可以通过重点查看运行时的代码行为,并调查具体的故障路径来进行故障排除。

若要确定问题是部署问题还是运行时问题,请参阅 Deployment vs. runtime issues(部署问题和运行时问题)。

我无法通过 FTP 来发布代码。 如何解决此问题?

检查是否输入了正确的主机名和凭据。 另请检查计算机上的以下 FTP 端口是否未被防火墙阻止:

  • FTP 控制连接端口:21
  • FTP 数据连接端口:989、10001-10300

如何在 Azure 应用服务中通过被动模式连接到 FTP?

Azure 应用服务支持通过“主动”模式和“被动”模式进行连接。 首选“被动”模式,因为部署计算机通常位于防火墙后面(不管是在操作系统中,还是在家庭网络或企业网络中)。 请参阅 WinSCP 文档中的示例

后续步骤

有关更高级的部署方案,请参阅使用 Git 部署到 Azure。 通过基于 Git 的 Azure 部署可实现版本控制、包还原、MSBuild 等功能。

更多资源