0

Publish-AzureVMDscConfiguration -> Set-AzureVMDscExtension -> Update-AzureVM我终于设法通过 Azure PowerShell SDK 方法(尤其是组合)使用 Desired State Configuration 来自动化我们的发布过程。

在考虑了一段时间以将我的构建输出发送到 VM 可以访问的某个地方之后,我最终采用了将我的构建 drop 附加到配置包中的策略,该配置包被上传到 Azure 存储。

我现在的问题是,一旦 VM 中的 PowerShell DSC 扩展开始下载该包,它的内存消耗就会飙升。当我打开任务管理器时,我可以看到新创建的 PowerShell 进程从大约 30 兆字节到 300 字节,再到 1.3GB,完全破坏了我的虚拟机。

昨天下午,我下班让它处理,但是当我今天登录到 VM 时,包含我的构建输出的内部 zip 文件在 DSCWork 文件夹中有 0 个字节。我的问题是,即使它最终工作,它也需要很长时间并且使我的虚拟机无用......我什至无法在远程访问的窗口之间切换,因为机器完全卡在 100% 的 RAM 使用率.

为什么 PowerShell 会占用如此多的内存和时间来下载我的配置包?它只有 60MB 的压缩包,大约 200MB 的解压包。我能做些什么来防止这种情况发生吗?

更新:

我刚才测试了它,它终于正确完成了。花了一个多小时,但文件在那里......虽然这是不可接受的。

4

1 回答 1

2

此问题应在扩展的下一次迭代中解决。同时,您可能需要考虑将构建内容上传到与配置 ZIP 包分开的 blob(您可以为此使用 Set-AzureStorageBlobContent)。

然后,您可以使用原始配置中的远程文件或脚本资源来下载 blob。请务必在配置中添加适当的依赖项,以便在使用 blob 之前下载它。

configuration DownloadSample
{
    Import-DscResource -Module xPSDesiredStateConfiguration

    xRemoteFile Download
    { 
       Uri = 'https://....blob.core.windows.net/windows-powershell-dsc/foo.zip?sv=...'
       DestinationPath = 'd:\tmp\download.zip'
   }
}
于 2014-10-31T16:35:14.210 回答