【问题标题】:Run Custom Script Extension Against Azure App Service针对 Azure 应用服务运行自定义脚本扩展
【发布时间】:2017-11-14 11:56:54
【问题描述】:

我能够使用 Set-AzureRmVMCustomScriptExtension 对 VM 执行自定义脚本扩展,并注意到 Azure 应用服务已将扩展列为其选项之一:

扩展为您的应用服务添加功能。点击添加查看 可用扩展的列表。

我想要实现的是针对托管应用服务的 VM 运行一些 PowerShell,但找不到像 Set-AzureRmVMCustomScriptExtension 这样的资源管理器 cmdlet。一个例子是修改托管我网站的 IIS 的某些目录的安全性以禁用匿名访问,并在我的网站目录中添加一些文件。我可以使用针对 IaaS Azure VM 的脚本来实现这一点,我想知道这是否适用于应用服务,如果可以,如何定位应用服务的 VM。

我在此 PowerShell 中采取的关键操作是:

  1. 禁用对 IIS 中某些目录的匿名访问
  2. 限制对某些文件类型的访问
  3. 编辑现有 XML 文件
  4. 将新文件添加到目录(通过 CDN 下载)

登录到 Kudu 界面 (Mysite.scm.azure...) 我可以通过调试控制台选项执行一些 PowerShell,所以我认为必须有一种方法通过 Azure 自动化运行 PowerShell,而不是 AzureRm .Websites cmdlet 与 Kudu PowerShell 界面一样,我能够使用普通的旧 create-item cmdlet 创建目录。

【问题讨论】:

    标签: powershell azure azure-web-app-service azure-automation


    【解决方案1】:

    应用服务与虚拟机托管有很大不同。在应用服务中,您永远无法直接访问 VM,而且通常无法运行任何在全局级别影响 VM 的脚本。

    相反,您只能影响构成 Web 应用程序的文件,并且一切都在 sandbox 下运行。

    【讨论】:

    • 影响 Web App 中的文件是我的核心需求之一。如何最好地做到这一点?前任。创建一个添加所需文件的扩展。我的计划是通过 Azure 自动化执行此操作
    • 您可以使用 Kudu vfs 或 zip API 将文件上传到您的 Web 应用程序。您应该可以从 Azure 自动化中调用它
    • 正是我想要的。鉴于我可以在 Kudu 调试控制台中执行这些命令,有关如何通过 Azure 自动化修改 IIS 或运行 PowerShell 命令的任何想法? (我已经用详细信息更新了我原来的帖子)
    • Kudu 控制台仅在沙箱内运行,不能用于永久站点配置(上传文件除外)。查看所有*RmWebApp* PowerShell 以了解您可以更改的内容。以Set-AzureRmWebApp开头。
    • WebJobs 支持运行 PowerShell。但如果你想与 Azure 通信,则需要设置一个服务主体。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多