Powershell 对Azure应用程序服务运行自定义脚本扩展

Powershell 对Azure应用程序服务运行自定义脚本扩展,powershell,azure,azure-web-app-service,azure-automation,Powershell,Azure,Azure Web App Service,Azure Automation,我能够使用Set-AzureRmVMCustomScriptExtension对VM执行自定义脚本扩展,并注意到Azure应用程序服务将扩展列为其选项之一: 扩展为您的应用程序服务添加功能。单击“添加”以查看 可用扩展名的列表 我想要实现的是对托管应用程序服务的VM运行一些PowerShell,但找不到像Set-AzureRmVMCustomScriptExtension这样的资源管理器cmdlet。例如,修改托管我的网站的IIS的某些目录的安全性以禁用匿名访问,并向我的网站目录添加一些文件。我

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

扩展为您的应用程序服务添加功能。单击“添加”以查看 可用扩展名的列表

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

作为此PowerShell的一部分,我采取的关键行动是:

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

  • 登录Kudu界面(Mysite.scm.azure…),我可以通过调试控制台选项执行一些PowerShell,因此,我认为必须有一种方法可以通过AzureRm.Websites cmdlet以外的Azure Automation来运行PowerShell,就像Kudu PowerShell界面一样,我能够使用一个简单的旧创建项cmdlet创建目录。

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


    相反,您只能影响构成Web应用程序的文件,并且所有内容都在一个特定的环境下运行。

    影响Web应用程序中的文件是我的核心要求之一。如何最好地实现这一点?例如,创建一个添加所需文件的扩展名。我的计划是通过Azure Automation执行此操作。您可以使用Kudu vfs或zip API将文件上载到您的web应用程序。你应该能够从Azure自动调用它,这正是我想要的。如果我可以在Kudu调试控制台中执行这些命令,那么有没有关于如何通过Azure Automation修改IIS或运行PowerShell命令的想法?(我已经更新了我的原始帖子的细节)Kudu控制台只在沙箱中运行,不能用于永久站点配置(上传文件除外)。查看所有
    *RmWebApp*
    PowerShell以查看您可以更改的内容。从
    设置AzureRmWebApp开始。WebJobs支持运行PowerShell。但是如果你想和Azure对话,你需要设置一个服务主体。