如何解决为什么Azure Cloud Shell在默认订阅中创建资源组?
我使用Set-AzContext将Azure Cloud Shell
中当前会话的订阅更改为其他订阅,如下所示。但是,当我在Azure Cloud Shell的同一会话中使用Ansible playbook创建Resource Group
时,为什么仍在默认订阅中创建资源组,为什么?
Set-AzContext -SubscriptionId "myOtherSubscription"
以上命令成功将预订从默认更改为myOtherSubscription
,并显示了如下结果:
Name Account SubscriptionName Environment TenantId
---- ------- ---------------- ----------- --------
Visual Studio Enterprise – MPN (a86c7y8… MSI@51342 Visual Studio Enterprise – MPN AzureCloud 86eafd5a-8ce3-4d0c-981c-8dac1…
然后,我运行ansible命令ansible-playbook myplaybook_to_create_rg.yml
,该命令成功创建了资源组,但仍位于默认订阅中,而不是位于myOtherSubscription
内部。如Microsoft团队的this示例所示,ansible代码中没有提及用于创建资源组的订阅。这意味着它应该在运行Azure Cloud Shell的订阅中创建资源组。
解决方法
您在此处的误解根源是Ansible 不知道您正在使用的AzContext
中选择的订阅。您链接的文档证实了这一点:
使用多个订阅时,请通过导出
AZURE_SUBSCRIPTION_ID
环境变量来指定订阅Ansible用途。
对于Cloud Shell,有两种方法可根据您的Shell类型来设置Ansible使用哪种订阅:
-
对于基于 PowerShell 的Cloud Shell实例,通过运行以下命令在本地范围内设置
AZURE_SUBSCRIPTION_ID
环境变量:$env:AZURE_SUBSCRIPTION_ID="<your-subscription-id>"
...将
<your-subscription-id>
占位符替换为目标Azure订阅ID。 -
对于基于
bash
的Cloud Shell,您可以使用export
关键字来实现同一目的:export AZURE_SUBSCRIPTION_ID="<your-subscription-id>"`
...将
<your-subscription-id>
占位符替换为目标Azure订阅ID。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。