Azure PS 命令返回空列表

问题描述

我们已经创建了一个资源组,其中包含一个 VMSS 实例。

在 Cloud Shell 中运行“az vmss list”命令时,我们能够获取相应的资源。

CloudShell CLI Command output

然而,当在 PS 中运行完全相同的命令时,它返回一个空列表,即使资源存在。

Powershell

我们还创建了不同的命名约定,并使用 ARM Api 调用来测试这一点,我们得到了相同的结果。看下面的命令:

Invoke-RestMethod -Uri https://management.azure.com/subscriptions/***/resourceGroups/***-nodepool-prd-devtest/providers/Microsoft.Compute/virtualMachinescaleSets?api-version=2020-12-01 -Method GET -Headers $headers -ContentType 'application/json'

Output:

value
-----
{}

我们尝试将另一个 VMSS 添加到同一资源组作为测试,并注意到这会弹出另一个

Creation of another vmss resolves the issue

在我看来好像是缓存问题,但我不知道如何解决。有什么想法吗?

注意事项:

  • 使用与 Cloud Shell (2.23.0) 相同的 CLI 版本
  • 从管道运行命令返回一个空列表
  • 团队成员能够从他们自己的机器上获取资源

解决方法

当特定订阅未显示在输出列表中时,我看到了类似的问题。 我们使用以下 ps 命令来解决问题:

Disable-AzureRmContextAutosave
Disconnect-AzureRmAccount

在使用 Az 模块时,请尝试以下操作:

Disable-AzContextAutosave
Disconnect-AzAccount

来源:https://github.com/Azure/azure-powershell/issues/6289

PS:看来您需要将标题编辑为“Azure PS 命令返回空列表”