通过 Powershell 将 Blob 中的 Azure 自定义脚本扩展添加到虚拟机规模集

Add Azure Custom Script Extension from Blob to Virtual Machine Scale Set by Powershell

要使用 public 仅可用的脚本执行此操作,使用:

没有问题
$publicSettings = @{
    "fileUris" = (,"$uri");
    "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File azure_cse_vm_initial_script.ps1 $argument"
}

Write-Host "  ==> Add-AzureRmVmssExtension"
Add-AzureRmVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "customScript" `
    -Publisher "Microsoft.Compute" `
    -Type "CustomScriptExtension" `
    -TypeHandlerVersion 1.8 `
    -Setting $publicSettings

但是如果我使用带有 blob 容器的存储帐户怎么办?可以将访问密钥添加到设置对象吗?但是怎么办? URL.

使用什么

我想要 运行 的脚本不应该 public 可访问,因为它是我的应用程序的安装脚本。

谢谢, 丹尼尔

我会为该脚本创建一个共享访问签名(参见 Using shared access signatures)。然后您可以简单地将 SAS 令牌添加到 URI。例如:

https://myaccount.blob.core.windows.net/sascontainer/sasblob.txt?sv=2015-04-05&st=2015-04-29T22%3A18%3A26Z&se=2015-04-30T02%3A23%3A26Z&sr=b&sp=rw&sip=168.1.5.60-168.1.5.70&spr=https&sig=Z%2FRHIX5Xcg0Mq2rqI3OlWTjEg2tYkboXr1P9ZUXDtkk%3D

您也可以使用存储帐户名称和存储帐户密钥来下载脚本:https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows#extension-schema