你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
部署代码的最简单方法之一是从本地计算机。 本文介绍如何从本地计算机上的 Git 存储库将应用部署到 Azure 应用服务 。
注意
本地 Git 部署需要 源代码管理(SCM)基本身份验证,这不如其他 部署方法安全。 如果 禁用了基本身份验证,则无法在应用的部署中心中配置本地 Git 部署。
Prerequisites
若要完成本文中的步骤,你需要:
Azure 帐户和具有创建应用服务资源权限的订阅。 如果没有 Azure 帐户,请在开始前创建一个免费帐户。
已安装 Git,以及包含要部署的应用代码的本地 Git 存储库。
可以通过在本地 Bash 终端窗口中运行以下命令来克隆示例 Node.js 应用存储库:
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git若要使用 Azure CLI 命令,请在本地计算机上安装最新版本的 Azure CLI 。 使用 az login 登录到 Azure。
若要运行 Azure PowerShell 命令, 请安装最新版本的 Azure PowerShell。 使用 Connect-AzAccount 登录到 Azure。
准备存储库
若要从应用服务生成服务器获取自动构建,请确保项目的存储库根目录中有正确的文件。
| 运行时 | 根目录文件 |
|---|---|
| ASP.NET(仅限 Windows) |
*.sln, *.csproj 或 default.aspx。 |
| ASP.NET Core |
*.sln 或 *.csproj。 |
| PHP |
index.php。 |
| Ruby(仅限 Linux) |
Gemfile。 |
| Node.js |
server.js、app.js或package.json与启动脚本一起使用。 |
| Python |
*.py, requirements.txt 或 runtime.txt。 |
| HTML |
default.htm、、default.htmldefault.asp、index.htm、或index.htmliisstart.htm。 |
| WebJobs |
<job_name>/run.<extension> 下的 App_Data/jobs/continuous(表示连续 WebJobs),或者 App_Data/jobs/triggered(表示触发的 WebJobs)。 有关详细信息,请参阅 Kudu WebJobs 文档。 |
| Functions | 请参阅 Azure Functions 的连续部署。 |
若要自定义部署,请在存储库根目录中包括一个 .deployment 文件。 有关详细信息,请参阅自定义部署和自定义部署脚本。
提示
Visual Studio 可以为你创建存储库。 使用此方法,你的项目立即可以通过 Git 进行部署。
部署用户凭据
需要部署用户凭据才能对应用进行身份验证和部署。 这些凭据不同于 Azure 订阅凭据,可以使用 用户范围 或 应用程序范围 凭据。
本地 Git 部署的用户范围部署用户只需要用户名,而不需要密码。 您可以通过运行 Azure CLI 命令az webapp deployment user set --user-name <username>,或在应用的部署中心的本地 Git/FTPS 凭据选项卡中,在用户范围下设置用户范围用户名。
创建用户范围部署用户后,可以将其用于你有权访问的所有应用服务应用。 有关详细信息,请参阅 “配置用户范围凭据”。
应用程序范围部署用户特定于应用,并在创建应用时自动创建。 可以从应用的部署中心的“本地 Git/FTPS 凭据”选项卡获取用于部署的应用程序范围用户凭据。
创建和配置已启用 Git 的应用
可以使用 Azure CLI、Azure PowerShell 或 Azure 门户为预先存在的应用创建和配置已启用 Git 的应用,或配置本地 Git 部署。
若要创建为本地 Git 部署配置的新 Web 应用,请使用该选项运行
--deployment-local-git。 例如:az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:20-lts" --deployment-local-git若要为已有的应用配置本地 Git 部署,请运行 az webapp deployment source config-local-git。 例如:
az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
任一命令生成包含 URL 的输出,例如:
Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'
上述 URL 包含 用户范围部署用户名contoso-user。 如果没有用户范围部署用户名,则 URL 使用 应用程序范围用户名,例如 https://$myApp@myApp.scm.azurewebsites.net/myApp.git。
使用此 Git 克隆 URL 在下一步中部署应用。
部署 Web 应用
若要将应用部署到 Azure,请在必要时创建远程分支,确保部署到正确的分支,然后将代码推送到远程分支。
创建远程分支
如果使用 Azure PowerShell New-AzWebApp 从示例代码创建应用,则 azure 已创建远程服务器。 否则,请按照以下说明创建远程:
在本地终端中,将目录更改为克隆的 Git 存储库的根目录。
使用 Git clone URL 添加名为
azure的 Git 远程。 如果不知道 Git 克隆 URL,请使用https://<app-name>.scm.azurewebsites.net/<app-name>.git。git remote add azure <git-clone-url>
推送到正确的分支
默认情况下,应用服务存储库将 master 文件部署到分支。 如果预先存在的本地文件位于存储库的分支中 master ,现在可以通过运行 git push azure master来部署应用。
但是,许多 Git 存储库(包括本文的示例代码存储库)使用 main 或其他默认分支名称。 若要部署到正确的分支,必须显式部署到远程 master 分支,或者将部署分支更改为 main 或其他分支名称并部署到该分支。
使用以下 master 命令从 main 分支显式部署到 push:
git push azure main:master
或者将应用的 DEPLOYMENT_BRANCH 应用设置更改为 main,然后直接推送到 main,如下所示:
Azure CLI:
az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure mainAzure 门户:
- 在应用的门户页上,在左侧导航菜单中的“设置”下选择“环境变量”。
- 选择 “添加”,添加名称 DEPLOYMENT_BRANCH 和值 main 的应用程序设置,然后选择“ 应用”。
- 在终端窗口中,运行
git push azure main。
完成并验证部署
如果在推送代码后出现 Git 凭据管理器 对话框,请输入用户范围部署用户名或应用程序范围用户名和密码。 如果 Git 远程 URL 已包含登录信息,则不会提示你输入它。
查看 push 命令的输出。 你可能会看到特定于运行时的自动化,例如 npm install for Node.js、MSBuild for ASP.NET 和 pip install for Python。 如果收到错误,请参阅 “排查部署问题”。
转到 Azure 门户,通过在应用的“概述”页上选择“默认域”链接来验证是否已成功部署应用。 应用应在浏览器选项卡中打开,并显示 Hello World!。
排查部署问题
使用本地 Git 发布到 Azure 中的应用服务应用时,可能会出现以下常见错误: