Azure Cloud ShellからNSGを作ろうとしたけど、なぜかコマンドが動かなくてしばらくハマりました。
似たようなことに陥った方もいるかもと思い残しておきます。
コマンド実行したけどエラーが出る
- 実行コマンド
az network nsg create --resource-group $RESOURCE_GROUP --name $NSG_NAME
- エラーメッセージ
Resource name xxx is invalid. The name can be up to 80 characters long. It must begin with a word character, and it must end with a word character or with '_'. The name may contain word characters or '.', '-', '_'.
原因の切り分け
今回実行しているコマンドは、Power Pointからのコピペで実行していました。
試しにコピペじゃなくて、すべて直打ちしてみるとうまく動きました。
コピペが怪しい・・?
原因特定!
コピーした文字列と直打ちの文字列をviで見比べてみました。
- コピペ
az network nsg create --resource-group $RESOURCE_GROUP --name $NSG_NAME<200b>
- 直打ち
az network nsg create --resource-group $RESOURCE_GROUP --name $NSG_NAME
ん?<200b>?
コピペしたほうは文字コード<200b>が挿入されています。(ゼロ幅スペース)
O365のPower Point(Web版)でコピーするとゼロ幅スペースが挿入されるようです。
ローカルのPower Pointで開くとゼロ幅スペースは挿入されませんでした。
まとめ
思いがけないところでハマってしまいました。
同じエラーメッセージが出力された方はゼロ幅スペースがないか確認してみてはどうでしょうか。