【问题标题】:Add virtual folder to Azure Web App将虚拟文件夹添加到 Azure Web App
【发布时间】:2015-10-12 23:46:22
【问题描述】:

我想自动部署到 Azure Web App。 我正在使用 Octopus Deploy 将我的应用程序部署到 Azure Web 应用程序到基于我的 git-branch 的子文件夹中。

这行得通。

问题是,我需要将该文件夹添加到 Web App 的应用程序设置中的虚拟目录列表中,并且我还必须将其标记为应用程序。

我该怎么做?
我可以使用 PowerShell 的任何功能。

附:我找到了这个旧线程:https://social.msdn.microsoft.com/Forums/azure/en-US/990f41fd-f8b6-43a0-b942-cef0308120b2/add-virtual-application-and-directory-to-an-azure-website-using-powershell?forum=windowsazurewebsitespreview,但这似乎不再有效。

【问题讨论】:

    标签: powershell azure octopus-deploy


    【解决方案1】:

    我建议您查看 Azure 资源管理器 - https://resources.azure.com - 如果您深入到现有的 Web 应用程序,您可以查看用于管理资源的 REST 和 PowerShell 命令。在 Web App JSON 中,您会找到虚拟应用程序部分:

    "virtualApplications": [
      {
        "virtualPath": "/",
        "physicalPath": "site\\wwwroot",
        "preloadEnabled": true,
        "virtualDirectories": null
      }
    ],
    

    由于您使用的是 Azure PowerShell,在 Get-AzureSubscription 之后,您应该能够执行以下操作:

    # PowerShell equivalent script
    Switch-AzureMode -Name AzureResourceManager
    
    # GET web
    Get-AzureResource -ResourceGroupName yourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName yourWebApp/web -OutputObjectFormat New -ApiVersion 2015-08-01
    
    # SET web
    $PropertiesObject = @{
        #Property = value;
    }
    
    Set-AzureResource -PropertyObject $PropertiesObject -ResourceGroupName yourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName yourWebApp/web -OutputObjectFormat New -ApiVersion 2015-08-01 -Force
    

    【讨论】:

    • 这很酷。是否有包含身份验证部分的示例?实际上我昨晚确实设法让它工作,但身份验证是一场噩梦。我必须创建一个 WAAD Web 应用程序并将其权限分配给资源组。我在已完成身份验证的 Octopus Deploy 上下文中运行 - Get-AzureSubscription 返回我的订阅,无需我进行任何身份验证。我能否以某种方式为 Azure 资源管理器重用这个现有的身份验证?
    • 您应该能够跟进 Azure PowerShell 命令 - 在答案中添加了一个示例。基于 REST 的身份验证示例在这里:msdn.microsoft.com/en-us/library/azure/dn790557.aspx
    • 好的,所以我在我的问题中输入的链接中的代码实际上应该仍然有效。我在调用 Switch-AzureMode 时收到 FileNotFound 异常,但仅在弃用警告之后。我认为这是由于弃用。但那一定是别的东西。那我应该和 Octopus Deploy 团队核实一下。
    • 我能够在 Octodeploy 中让它工作。对于“工作”,我的意思是它现在正在引发 ARM 异常。它说:身份验证失败。 “授权”标头不存在或以无效格式提供。看起来它没有对“正常”的 Azure Powershell 命令使用身份验证。关于如何强制 ARM 使用该身份验证的任何想法?
    • 我想我找到了答案:dushyantgill.com/blog/2015/05/23/… 这篇文章说 ARM API 不支持管理证书,但这正是 Octopus Deploy 使用的方法。所以,我想,我必须走 WAAD 应用程序的路线 :-(
    猜你喜欢
    • 2012-09-04
    • 2020-06-17
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多