将代码发布到 Azure Web 应用程序中的自定义文件夹
Releasing Code to a custom folder in Azure web apps
我有一个代码,我在 Azure DevOps 中有一个构建管道。我还有一个 Linux WebApp,我在 site/wwwroot 目录中创建了一个名为 test 的文件夹。当我创建发布管道时,我希望它发布到测试文件夹而不是默认路径。这可能吗??
您可以使用 Kudu REST API 来实现它。它允许您指定上传文件的位置,而不是局限于默认位置。
首先,您应该将 Powershell 任务添加到您的发布管道,然后编写一些脚本来调用和 运行 kudu api 来部署您的应用程序。下面是一个例子:
$WebApp = Get-AzWebApp -Name '<appname>' -ResourceGroupName '<resourcegroupname>'
[xml]$publishingProfile = Get-AzWebAppPublishingProfile -WebApp $WebApp
# Create Base64 authorization header
$username = $publishingProfile.publishData.publishProfile[0].userName
$password = $publishingProfile.publishData.publishProfile[0].userPWD
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$param = @{
# zipdeploy api url
Uri = "https://<appname>.scm.azurewebsites.net/api/zip/site/wwwroot/test"
Headers = @{Authorization=("Basic {0}" -f $base64AuthInfo)}
UserAgent = "powershell/1.0"
Method = "PUT"
# Deployment Artifact Path
InFile = "$(System.DefaultWorkingDirectory)\<artifacts_alias>\drop\<artifacts_name>.zip"
ContentType = "multipart/form-data"
}
# Invoke REST call
Invoke-RestMethod @param
关于kudu的详细介绍可以参考this articleapi
最简单的方法是使用FTP Upload task将提取的文件直接上传到site/wwwroot下的子文件夹。
如果您在部署前压缩了包,那么您需要先添加一个任务来提取文件。当然您也可以先将压缩包上传到服务器,然后导航到该位置并手动将文件解压缩到特定文件夹(在您的场景中为site/wwwroot/test
)。
参考 Use FTPS to deploy your WebApp using Azure DevOps 了解更多信息。
我有一个代码,我在 Azure DevOps 中有一个构建管道。我还有一个 Linux WebApp,我在 site/wwwroot 目录中创建了一个名为 test 的文件夹。当我创建发布管道时,我希望它发布到测试文件夹而不是默认路径。这可能吗??
您可以使用 Kudu REST API 来实现它。它允许您指定上传文件的位置,而不是局限于默认位置。
首先,您应该将 Powershell 任务添加到您的发布管道,然后编写一些脚本来调用和 运行 kudu api 来部署您的应用程序。下面是一个例子:
$WebApp = Get-AzWebApp -Name '<appname>' -ResourceGroupName '<resourcegroupname>'
[xml]$publishingProfile = Get-AzWebAppPublishingProfile -WebApp $WebApp
# Create Base64 authorization header
$username = $publishingProfile.publishData.publishProfile[0].userName
$password = $publishingProfile.publishData.publishProfile[0].userPWD
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$param = @{
# zipdeploy api url
Uri = "https://<appname>.scm.azurewebsites.net/api/zip/site/wwwroot/test"
Headers = @{Authorization=("Basic {0}" -f $base64AuthInfo)}
UserAgent = "powershell/1.0"
Method = "PUT"
# Deployment Artifact Path
InFile = "$(System.DefaultWorkingDirectory)\<artifacts_alias>\drop\<artifacts_name>.zip"
ContentType = "multipart/form-data"
}
# Invoke REST call
Invoke-RestMethod @param
关于kudu的详细介绍可以参考this articleapi
最简单的方法是使用FTP Upload task将提取的文件直接上传到site/wwwroot下的子文件夹。
如果您在部署前压缩了包,那么您需要先添加一个任务来提取文件。当然您也可以先将压缩包上传到服务器,然后导航到该位置并手动将文件解压缩到特定文件夹(在您的场景中为site/wwwroot/test
)。
参考 Use FTPS to deploy your WebApp using Azure DevOps 了解更多信息。