SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

WSL インストール直後に Azure CLI を実行したら期待した動作にならなかった話

leave a comment

WSL を新規にインストールし、Azure CLI を実行したところ、「cli.azure.cli.core.azclierror: Operation returned an invalid status ‘Bad Request’」や他のエラーが発生し、実行することができないという事象が発生しました。

実行しているのは次のようなシンプルなコマンドだったのですが、これを実行するとエラーとなっていました。

rgName=$(az group show -n rg-AzureStackHCI-22H2-JapanEast --query "name" -o tsv)
az group show --name $rgName --debug --verbose

 

デバッグ情報を出力すると、次のようなオプション指定で実行されていることが確認できました。

cli.knack.cli: Command arguments: ['group', 'show', '--name', 'rg-AzureStackHCI-22H2-JapanEast\r', '--debug', '--verbose']

シェル変数にリソースグループ名を格納して、その変数で後続のコマンドを実行しているのですが、変数に格納した情報に「\r」が含まれていることが原因のようでした。

なぜ、このような状態になっているのかが不明だったのですが X で以下のアドバイスをいただくことができました。

私が使用していた環境も、このアドバイスのとおりでして、WSL 側に Azure CLI をインストールしたと思っていたら、インストールしておらず、Windows 側でインストールした CLI が使用されていました。

WSL の 相互運用の設定 に記載されていますが、appendWindowsPath の設定がデフォルトで有効となっており、WSL では Windows の PATH の内容が含まれた状態となっています。

そのため、WSL でも Windows の Azure CLI のパスである 「/mnt/c/Program Files (x86)/Microsoft SDKs/Azure/CLI2/wbin (

C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az)」が PATH に含まれた状態となっており、Windows 側の az コマンドが使用されているという状態となっていたようでした。

WSL 側に Azure CLI をインストールし、「/usr/bin/az」を使用されるようにしたところ「\r」の制御コードが含まれなくなり期待した動作となりました。

Share

Written by Masayuki.Ozawa

12月 23rd, 2024 at 8:48 pm

Posted in Azure CLI,WSL

Tagged with ,

Leave a Reply