ピロローグ

主に技術ネタについて書いてみる

Azure CLIを使って仮想アプリケーションとディレクトリを変更する

チュートリアル:Azure で PHP と MySQL アプリを構築する | 仮想アプリケーション パスを設定する を参考に仮想ディレクトリを変更しようとしたらつまずいた。 どうやらURLが正しくないみたい。

az resource update --name yourproject --resource-group yourprojectrg --namespace Microsoft.Web --resource-type config --parent sites/<app_name> --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2015-06-01
Operation failed with status: 'Not Found'. Details: 404 Client Error: Not Found for url: https://management.azure.com/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourcegroups/yourprojectrg/providers/Microsoft.Web/sites/yourproject/config/yourproject?api-version=2015-06-01

Resource Explorerから該当のリクエストURLを確認したところリソースIDの形式がマッチしてない模様。

https://management.azure.com/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/yourprojectrg/providers/Microsoft.Web/sites/yourproject/config/web?api-version=2018-02-01

力技ですが、az resource updateコマンドでidsオプションでリソースIDを指定することで対応した。 ※合わせてapi versionの日付も修正

subscription_id=$(az account show --query id)
az resource update --ids "/subscriptions/${subscription_id}/resourceGroups/yourprojectrg/providers/Microsoft.Web/sites/yourproject/config/web" --set properties.virtualApplications[0].physicalPath="site\wwwroot\public" --api-version 2018-02-01

期待通りになっている。

f:id:pir0:20190131205611p:plain
仮想アプリケーションとディレクト

上記を使えば追加もできそう。