我们实际上有多个 azure 帐户(出于某种正当原因),我希望能够在同一台机器上同时为不同的帐户运行 azure-cli 命令。
问题是,一旦我使用 登录到一个 azure 帐户azure login
,令牌将存储在 ~/.azure 目录中,所以我不确定我是否可以在该机器上同时登录另一个帐户。
有没有办法告诉 azure-cli 不要将令牌存储在本地配置文件中,以便我可以使用 azure-cli 从同一台机器同时连接到多个帐户?
如果您使用的是 windows 或 mac 机器,则令牌分别存储在 Windows 令牌管理器或 OSx 密钥链中。仅在 Linux 系统上,令牌存储在 ~/.azure/azureProfile.json
但是,您仍然应该能够在 Win/Mac 或 Linux 机器上使用多个帐户登录。
azure account set "subscription-name" 会将订阅设置为您的默认订阅,并且您执行的所有命令都将针对该订阅运行。
每个命令都有一个 -s 或 --subscription 开关,您可以在其中显式指定订阅 ID。即使订阅属于不同的帐户,如果您已使用该帐户进行身份验证,它仍然可以工作。
对于 Linux 系统,我建议创建多个用户帐户,然后从这些帐户运行 CLI。我认为当来自不同帐户的两个命令尝试访问 ~/.azure/azureProfile.json 时,可能会出现竞争情况。
最新的更新是环境变量AZURE_CONFIG_DIR已被引入,并且可以在az login
调用之前为每个环境进行不同的设置。
导出 AZURE_CONFIG_DIR=/tmp1
登录
和其他窗口
导出 AZURE_CONFIG_DIR=/tmp2
登录
对于Windows,这里是步骤
AZURE_CONFIG_DIR
新配置文件夹的值(例如C:\Users\YourUser\.azure-personal
)az login --use-device-code
现在,您的帐户配置之一位于默认的 azure 文件夹配置 ( C:\Users\YourUser\.azure
) 中,而新的帐户配置位于您在步骤 1 中指定的位置。
如果你想在它们之间切换,你需要翻转那个环境变量来指向你想要的任何配置