我正在为应用程序创建Azure Scaleset。我进行了设置,以便在横向扩展时可以下载我过去使用的Powershell脚本,该脚本将:
仅此而已。从那里,我的CI / CD管道将自动将我的程序部署到这台新机器上,并在它检测到该应用程序的新目标时为我配置它。那部分工作正常。几周前我第一次对其进行设置时,它运行良好,并且可以横向扩展并完美地自动部署,而没有任何问题。
我今天注意到,突然有一个403试图在扩展期间将扩展名下载到计算机上,而几天前却没有这样做。就像我的扩展名过期了一样。这会使我的比例尺进入失败状态,直到它放大并仅保留始终作为基准的原始VMS。
我已经重新安装了它,并且可以正常工作,但是一段时间后它又坏了。我查看了我的scaleset的JSON,它的名称类似于iaasv2tempstore,因此它使我相信所有扩展都不是永久的。
这给我留下了两个问题:
答案 0 :(得分:0)
它不会过期。如果尝试从Blob下载时获得403,则可能表示您正在使用SAS令牌进行身份验证,并且该令牌已过期。如果脚本扩展名可以访问url,它将不会停止工作(例如,除非您阻止它与Azure对话)。
答案 1 :(得分:0)
为了解决该问题,我最终遵循了here所做的一些操作。
Azure乏味的自定义扩展ui的一般解决方法:
运行此AZ powershell脚本。如果正在扩展或缩小过程,它还不够完善,无法处理更新实例,但可以完成工作。
$ fileUri = @(“ https://somebloburi/blob/filename.ps1”) $ storageAcctName =“帐户” $ storageKey =“帐户密钥”
$ settings = @ {“ fileUris” = $ fileUri; “; commandToExecute” =“ powershell -ExecutionPolicy不受限制-File filename.ps1”}; $ protectedSettings = @ {“ storageAccountName” = $ storageAcctName; “ storageAccountKey” = $ storageKey};
$ myVMSS = Get-AzVmss -ResourceGroupName“ VMSS-RG” -VMScaleSetName“ myVmss”
$ myVMSS = Add-AzVmssExtension -VirtualMachineScaleSet $ myVMSS-名称“ CustomScriptExtension”-发布者Microsoft.Compute-类型“ CustomScriptExtension” -TypeHandlerVersion“ 1.7” -AutoUpgradeMinorVersion $ True-设置$ settings -ProtectedSetting $ protectedSettings Update-AzVmss -ResourceGroupName“ VMSS-RG” -VMScaleSetName myVmss -VirtualMachineScaleSet $ myVMSS
如果您不编写自动升级的脚本,则可以从用户界面自行完成。