LoginSignup
0
0

Azure Functionsでトリガーが認識されなくなったら、環境変数を確かめよう

Last updated at Posted at 2023-11-23

Azure Functionsでトリガーが認識されなくなったら、環境変数を確かめよう

記事の要約

Azure Functionsでは、設定→構成→アプリケーション設定から環境変数を追加できますが、使用してはならない名前があります。今回のケースでは、CONTAINER_NAMEというキーの追加により、トリガーの認識が失われる不具合に直面しました。

問題の発生

Azure FunctionsでCosmos DBへの接続設定を行っていたところ、Function Appのトリガーが突然認識されなくなりました。この問題により、Function自体が正常に動作しなくなりました。

2023-11-23_22h55_27.png
↑ トリガーが正しく認識されていた状態

2023-11-23_22h57_21.png
↑ Azure Portalで作業していると、トリガーが認識されなくなった

2023-11-23_22h57_45.png
↑ URLを開いても関数を利用することが出来ない

原因分析

Azure Functionsを再作成し、作業を再現してみると、CONTAINER_NAMEという環境変数を追加したタイミングで問題が生じることが判明しました。これが既存の環境変数を上書きして、問題を引き起こしたのではないかと思います。

解決方法

環境変数の名前をよりユニークなものに変更することで問題を解決しました。無事にトリガーが正常に認識されるようになりました。:relaxed:

補足情報

さらに調べると以下のようなIssueがありました。
[BUG] Host won't start when adding CONTAINER_NAME as environment variable #793
これによると、CONTAINER_NAMEはホスティング環境を解決するために関数ランタイムによって使用される環境変数の1つらしいですが、詳細はよく分かりませんでした。

他にも、公式リファレンスで予約済み環境変数について説明がありました。
App settings reference for Azure Functions
ここにCONTAINER_NAMEについての記述はありませんでした。開発時の参考になればと思います。

まとめ

環境変数の設定には気をつけましょう。

私自身、「Azure Functions トリガー 認識されない」などと検索しても有益な情報が見つけられず、かなり苦労しました。また、CONTAIER_NAMEという環境変数は注意していなければ使ってしまいそうなものです。まさか予約済みだとは思いませんでした…。

この情報が、同じような問題に直面している人の役に立てば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0