Az CLI 第一个请求在无状态计算机中需要更长的时间

Az CLI first request takes longer time in a stateless machine

提问人:eoeo 提问时间:11/13/2023 最后编辑:NoNameLittleeoeo 更新时间:11/17/2023 访问量:53

问:

我有一台无状态计算机,该计算机按以下方式在映像(Windows 2022 服务器)中安装了 Az CLI

Write-Host "Installing Azure CLI"
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; 
cmd /c dir AzureCLI.msi
$p = Start-Process -Filepath msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi ALLUSERS=1 /quiet' -PassThru
write-host "Exit code: $($p.exitcode)"
Remove-Item .\AzureCLI.msi

在运行时向这台计算机发出的请求中(即,带有映像的新 VM 接受请求),az cli 命令从 KeyVault 获取机密需要将近 50 秒,而如果我在获取机密之前执行 Az CLI 命令并执行获取机密,则需要几秒钟。但第一个确实需要 50 秒。我通过以下方式获取秘密

az keyvault secret show --name $secretName --vault-name $vaultName --query "value"

所以我认为第一个 AzCLI 调用需要很长时间。

我能做些什么来减少运行时所花费的时间吗?

azure-keyvault azure-cli

评论

0赞 Jahnavi 11/13/2023
问题可能与每次安装 MSI 包 CLI 有关。与其一次又一次地下载它,不如使用安装程序安装一次。你试过这种方式吗?@eoeo
0赞 eoeo 11/13/2023
MSI 的安装位于映像中,在运行时不会发生。在指定 VM 运行之前下载并安装 MSI。@Jahnavi

答:

0赞 giang0304 11/13/2023 #1

仅仅因为它是无国籍的。它在一段时间不活动时休眠,然后需要几次才能再次运行。有一些方法可以提高性能:

  • 配置计算机休眠所需的时间。
  • 为请求配置超时,并在超时请求上重新尝试一次或两次。
  • 让机器始终开启。
  • 您可以花钱购买一台功率更高的更好的机器,以便它可以更快地恢复到运行状态。
  • 或者这可能是我用来触发机器的一种非法方式,即在发送主请求之前调用无返回请求(预检)或身份验证请求。因此,请确保 main 可以成功触发,并且用户已获得身份验证

评论

0赞 eoeo 11/13/2023
机器始终处于开启状态