phy*_*man 10 azure-cli jmespath
我正在尝试创建一个 az cli 查询,它可以评估我是否登录到正确的租户和订阅。我知道我必须使用?
和&&
运算符,但还无法将它们组合成正确的组合。当我使用下面的行查询单个值时,工作正常:
az account list --query "[?id=='my_subscription_id']" --output json
Run Code Online (Sandbox Code Playgroud)
但是当我尝试下面的任何一行时,它告诉我它是无效的 jmespath_type 值:
az account list --query "[?id=='my_subscription_id' && ?tenantId=='my_tenant_id']" --output json
az account list --query "[(?id=='my_subscription_id') && (?tenantId=='my_tenant_id')]" --output json
Run Code Online (Sandbox Code Playgroud)
当我尝试下面的行时,它给了我错误] was unexpected at this time
:
az account list --query "[(?id=='my_subscription_id')&&(?tenantId=='my_tenant_id')]" --output json
Run Code Online (Sandbox Code Playgroud)
我知道这是可以做到的,只是似乎还找不到合适的混合物。
更新信息:
经过进一步的测试,我取得了一些进展,但仍然不完全符合我的预期。假设租户ID是123,我想要的订阅ID是ABC,我的帐户也可以访问订阅ID EFG。运行以下命令时:
az account list --query "[].{subscriptionId:id,tenantId:tenantId}"
Run Code Online (Sandbox Code Playgroud)
我得到输出:
{
"subscriptionId": "ABC",
"tenantId": "123"
},
{
"subscriptionId": "EFG",
"tenantId": "123"
}
Run Code Online (Sandbox Code Playgroud)
我希望运行下面的命令,只会返回匹配的单个记录:
az account list --query "[?id == 'ABC' && tenantid == '123'].{subscriptionId:id,tenantId:tenantId}" --output json
Run Code Online (Sandbox Code Playgroud)
但是,事实并非如此。它返回[]
。
运行以下命令将返回符合这两个条件的单个记录:
az account list --query "[?id == 'ABC' || tenantid == '123'].{subscriptionId:id,tenantId:tenantId}" --output json
Run Code Online (Sandbox Code Playgroud)
根据文档,&&
是 AND,||
是 OR。我认为运行包含其中的命令行时||
会返回两条记录,但它只返回包含这两个值的记录。
我正在尝试创建一个 az cli 查询,它可以评估我是否登录到正确的租户和订阅。
事实上,一个订阅只能信任一个租户,所以你只要过滤订阅Id,就会得到唯一一个匹配的租户ID。在此博客中阅读更多详细信息。
目录是 Azure AD 服务,每个目录可能有一个或多个域。Azure 订阅与 Azure Active Directory 具有信任关系,这意味着订阅信任 Azure AD 来对用户、服务和设备进行身份验证。
一个目录可以有多个与其关联的订阅,但只能有一个租户。多个订阅可以信任同一个 Azure AD 目录,但每个订阅只能信任一个目录。
在这种情况下,您已经知道订阅 ID。您还获得了订阅 ID 和租户 ID 映射记录的输出。您可以通过像这样过滤您的订阅 ID 来获得准确的结果。或者按照您所知道的方式使用它:az account list --query "[?id=='my_subscription_id']" --output json
然后您可以验证您是否登录了正确的租户。
az account list --query "[].{SubID:id,TenantID:tenantId}[?SubID=='my_subscription_id']" -o table
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35056 次 |
最近记录: |