如何通过命令行获取Azure容器组状态并按State字段筛选
Azure 容器组按状态筛选命令行使用说明
问题根因
你遇到的顶层State字段为空是Azure容器实例API的正常返回特性,Azure门户上展示的Status字段对应的值是容器组内运行的容器实例状态聚合,并非容器组资源的顶层字段。而顶层的ProvisioningState字段仅标识资源的预配部署结果,不代表运行时的实际状态。
PowerShell(Get-AzContainerGroup)筛选方法
按运行时状态筛选
取Containers属性下的容器实例状态进行过滤,例如筛选所有运行中的容器组:
Get-AzContainerGroup | Where-Object { $_.Containers.Properties.CurrentState.State -eq "Running" }
你之前尝试的筛选如果是要匹配预配成功的状态,可以直接使用ProvisioningState字段:
Get-AzContainerGroup | Where-Object { $_.ProvisioningState -eq "Succeeded" }
Azure CLI(az container list)筛选方法
通过内置的JMESPath查询能力实现筛选,示例如下:
筛选运行中的容器组
az container list --query "[?containers[].properties.currentState.state == 'Running']" -o table
筛选预配成功的容器组
az container list --query "[?provisioningState == 'Succeeded']" -o table
多容器组场景下,上述默认规则为所有容器都符合状态才会返回结果,如需匹配任意容器符合条件,调整查询语句的判断逻辑即可。
内容的提问来源于stack exchange,提问作者arturn
相关产品推荐
相关产品推荐

