首页 > 解决方案 > Azure Devops 发布管道 - 将单个文件部署到 Azure 应用服务

问题描述

我有一个文件需要部署到现有的应用服务(已经包含一个应用程序,之前通过另一个管道部署)。

我想避免为此使用 FTP 任务。

有没有办法通过 DevOps 管道将单个文件部署到应用服务中的特定文件夹?

标签: azureazure-devopsazure-pipelines

解决方案


实际上 FTP 似乎是部署单个文件的最简单方法。但是,如果您不想使用它,可以使用KUDU API。您需要将其包装在 powershell 脚本中:

$username = '$(username)'
$password = '$(password)'
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

$apiUrl = "https://$(siteName).scm.azurewebsites.net/api/vfs/site/your-file"
$filePath = "$(System.DefaultWorkingDirectory)/your-file"
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", ("Basic {0}" -f $base64AuthInfo))
$headers.Add("If-Match", "*")

Invoke-RestMethod -Uri $apiUrl -Headers $headers -Method PUT -InFile $filePath -ContentType "multipart/form-data"

在这里您可以找到如何获取凭据的信息。

但如果这是一次性任务,您可以使用此处提到的 KUDU 面板中的拖放操作


推荐阅读