更新部署在Microsoft Azure PAAS上的Web应用程序中的文件中的字符串

时间:2017-11-22 05:24:11

标签: azure azure-web-sites paas

我在app服务中部署了文件。我想在文件中更新字符串 stringToReplace

<> stringToReplace <>

  1. 不想重新部署
  2. 想要使用powershell(非手动)
  3. 更新文件字符串

1 个答案:

答案 0 :(得分:0)

似乎我们无法使用powershell 直接。您可以将your idea提供给Azure WebApp团队。

  
      
  • 不想重新部署
  •   
  • 想要使用powershell(非手动)
  • 更新文件字符串   

根据我的经验,我建议您可以使用Azure Kudu VFS API来获取文件内容并替换所需的字符串,并将其与新内容一起放在Azure上。然后您将无需重新部署azure webapp,只需更新您想要的单个文件..

GET /api/vfs/{path}
Gets a file at path

PUT /api/vfs/{path}
Puts a file at path.

如何在powershell中使用Azure Kudu Rest API,您可以参考此blog。以下是博客中的代码段

获取API授权:

function Get-KuduApiAuthorisationHeaderValue($resourceGroupName, $webAppName){

    $publishingCredentials = Get-PublishingProfileCredentials $resourceGroupName $webAppName

    return ("Basic {0}" -f [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $publishingCredentials.Properties.PublishingUserName, $publishingCredentials.Properties.PublishingPassword))))
}

上传单个文件

function Upload-FileToWebApp($kuduApiAuthorisationToken, $webAppName, $fileName, $localPath ){

    $kuduApiUrl = "https://$webAppName.scm.azurewebsites.net/api/vfs/site/wwwroot/app/resources/$fileName"

    $result = Invoke-RestMethod -Uri $kuduApiUrl `
                        -Headers @{"Authorization"=$kuduApiAuthorisationToken;"If-Match"="*"} `
                        -Method PUT `
                        -InFile $localPath `
                        -ContentType "multipart/form-data"
}