azure - Azure Devops 发布管道 - 将单个文件部署到 Azure 应用服务
问题描述
我有一个文件需要部署到现有的应用服务(已经包含一个应用程序,之前通过另一个管道部署)。
我想避免为此使用 FTP 任务。
有没有办法通过 DevOps 管道将单个文件部署到应用服务中的特定文件夹?
解决方案
实际上 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 面板中的拖放操作
推荐阅读
- azure - WebJobs 没有通过在 powershell 脚本中使用 Rest API Post 方法停止 - 出现错误 403 - 此 Web 应用程序已停止
- c++ - 为什么 c++ 时钟在休眠后返回较小的值?
- javascript - 如何使用 Excel Javascript 插件计算所有非空白单元格?
- java - Java 过滤器列表仅包含不同的(比较器不会为任何一对值返回 null)值
- oracle - 如何捕捉执行立即(开放)的错误?
- ios - 为应用手动快速通知消息
- matlab - 如何提高此图像的线性最佳拟合?
- java - 如何使用 java 流展平地图值
- c# - ASP.NET Core 2.2 中的 Azure AD 身份验证
- powershell - 从 PowerShell 脚本识别新的 Windows 终端