やりたいこと
業務で作成した Function App にデプロイしたある関数を削除する際に、ちょっとハマってしまったので備忘録と共有も兼ねて記事にしようと思います。
状況
- ある Function App (Linux) に2つの関数がデプロイされていた
- そのうち1つが必要なくなったので削除したくなった
- Portal から削除しようとしたが、削除ボタンが無効化されていた
- Function App を一度停止させればいけるかと思い、やってみるも有効化されない
このあたりで、いろいろ調べてみることに。
原因
原因は、関数のデプロイ時に Function App Core Tools を使って Portal 以外からデプロイしていたため、Portal 上での編集が無効化されていたこと。Portal にも以下のような表示が。
This function has been edited through an external editor. Portal editing is disabled.
じゃあどうすれば?
解決策
Function App Core Tools でデプロイする関数 (ソースコード) から、削除したい関数を取り除く! (削除する)
おそらく、Function App Core Tools からデプロイする場合、変更がなくとも全部の関数を毎回デプロイするのでしょう。
そのため削除したい場合はコードごと取り除く必要があった、ということだと思います。
ちなみに
VSCode の拡張機能から関数をデプロイした場合も同様に Portal からの編集はできないようです。確認していませんが、VSCode からの場合も同様に削除したい関数を取り除いたうえで再度デプロイすれば削除されると思います (きっと…)。
以上です。