当前位置: 首页 > 知识库问答 >
问题:

将其他文件重命名或部署到Azure Web App

曹臻
2023-03-14

作为Azure DevOps发布管道的一部分,我希望重命名一些。将文件配置为。配置。已禁用,在我的“部署Azure应用程序服务”任务完成后。

我试图添加一个额外的“部署Azure应用程序服务”任务,但这似乎覆盖了上一个任务,只剩下。配置。已禁用wwwroot中的文件。

在Azure web应用程序中,是否有其他方法(FTP上载任务除外)可用于重命名/部署文件子集?


共有1个答案

慕容宏邈
2023-03-14

如果你不想使用FTP,你可能会成功尝试使用支持Azure Web应用的Kudu服务。

要查看Kudu服务,请导航到https://

通过身份验证后,您会发现有一种方法可以浏览文件、查看正在运行的进程,还有一个交互式控制台,允许您对文件系统运行基本的DOS或PowerShell命令。

交互式控制台很棒,但要使其自动化,可以使用REST API对文件系统发出命令。

有几个向服务器发出命令的示例。在PowerShell中:

# authenticate with Azure
Login-AzureRmAccount
$resoureGroupName = "your-web-app-name"
$websiteName = "your-resource-group-name"

$env = @{
     command= 'Set COMPUTERNAME'
     dir= 'site'
}
$json = $env | ConvertTo-Json

$env2 = @{
     command= 'copy filename.config file.config.notused'
     dir= 'site\wwwroot'
}
$json2 = $env2 | ConvertTo-Json

$env3 = @{
     command= 'delete filename.config'
     dir= 'site\wwwroot'
}
$json3 = $env3 | ConvertTo-Json

# setup auth header
$website = Get-AzureWebsite -Name $websiteName
$username = $website.PublishingUsername
$password = $website.PublishingPassword
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))

$apiBaseUrl = "https://$($website.Name).scm.azurewebsites.net/api"
[System.Uri]$Uri = $apiBaseUrl

# get all the vms in the web-app
$instances = Get-AzureRmResource -ResourceGroupName $resoureGroupName `
                                -ResourceType Microsoft.Web/sites/instances `
                                -ResourceName $websiteName `
                                -ApiVersion 2018-02-01

#loop through instances
foreach($instance in $instances)
{
    $instanceName = $instance.Name
    Write-Host "`tVM Instance ID `t`t: " $instanceName

    #Now execute 'SET COMPUTER' cmd
    $cookie= New-Object System.Net.Cookie
    $cookie.Name = "ARRAffinity"
    $cookie.Value = $instanceName
    $Cookie.Domain = $uri.DnsSafeHost
    $session=New-Object Microsoft.Powershell.Commands.WebRequestSession
    $session.Cookies.add($cookie)
     $response = Invoke-RestMethod -Uri "$apiBaseUrl/command" `
                                -Headers @{Authorization=("Basic {0}" `
                                -f $base64AuthInfo)} `
                                -Method Post -Body $json `
                                -ContentType 'application/json' `
                                -WebSession $session
    Write-Host "`tVM Instance Name `t: " $response

    # perform copy file
    $response = Invoke-RestMethod -Uri "$apiBaseUrl/command" `
                               -Headers @{Authorization=("Basic {0}" `
                               -f $base64AuthInfo)} `
                               -Method Post -Body $json2 `
                               -ContentType 'application/json' `
                               -WebSession $session
    Write-Host "`tCopy file result `t: " $response

    # perform delete file
    $response = Invoke-RestMethod -Uri "$apiBaseUrl/command" `
                               -Headers @{Authorization=("Basic {0}" `
                               -f $base64AuthInfo)} `
                               -Method Post -Body $json3 `
                               -ContentType 'application/json' `
                               -WebSession $session
    Write-Host "`tCopy file result `t: " $response
 }    

文件系统支持复制和删除等基本命令,因此可以轻松重命名文件。

 类似资料:
  • 问题内容: 我正在向其中部署文件,并希望将其他文件包括到该段中,如下所述: 使用Heroku CLI配置WAR部署 它成功部署了文件,但是在扩展应用程序的任何子文件夹中我都找不到文件。同时,存档中的所有其他文件都在其位置上,其他 文件也仅此而已。我试图添加一些具有相同结果的文件: 问题: heroku在哪里包括其他文件?如何前往那里? 这是heroku-cli的输出: 问题答案: 这些文件将被添加

  • 我的名为“TestProject”的Java/Maven项目与我的jenkins and nexus repo挂钩: 我的pom.xml看起来是: 正如预期的那样,jenkins将工件上传到Nexus,看看jenkins build的控制台输出,如下所示: 问题是: 如果我在pom.xml中指定的版本是

  • 问题内容: 我的java / maven项目“ testproject”与我的jenkins和nexus回购挂钩: 我的pom.xml看起来像: 在我的詹金斯设置中,我有: 正如预期的那样,jenkins将工件上传到Nexus。查看jenkins build的控制台输出,如下所示: 问题是 : 鉴于我在pom.xml中指定的版本是 jenkins为何将testproject- 0.1-201205

  • 这份文档将说明如何在网站的非根文件夹下通过 Apache/Nginx 部署 Seafile。 注意: 请先阅读 Nginx 下配置 Seahub 或者 Apache 下配置 Seahub. Nginx 下部署 首先更改 seahub_settings.py 中一些变量的值: SERVE_STATIC = False MEDIA_URL = '/seafmedia/' COMPRESS_URL =

  • 文件重命名 文件重命名 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:更改名称 * * 程序会创建一个操作文件的函数并导出到msh命令列表 * 在

  • 问题内容: 我使用此命令查找具有给定模式的文件,然后将其重命名为其他文件 运行此命令时,我看到一些类似的输出 但是最后,当我运行时,我看到了旧文件名。 问题答案: 您正在回显’mv’命令,而不是实际执行它。改成: