HaneCa

独り立ちへ向けた長い道

Azure FunctionsでCosmos DBを出力バインドする時のエラー (Node.js)

投稿日: 2020年5月18日 最終更新日: 2021年3月24日
Photo by Mathew Schwartz on Unsplash

Azure FunctionsでCosmos DBを出力バインドに設定して、データ操作する際に次のようなエラーが発生しました。

そのままエラーの内容を理解すると、ConnectionStringSettingという変数が見つからないから確認してくださいという意味だが、Azure Functionsで変数を定義するfunction.jsonファイルには、次のように確かに変数を定義していました。

原因としては、function.jsonファイルに直にCosmos DBへのconnection stringの値を書いた場合、その値は認識されないという仕様であることがわかりました。どこかに書かれているのでしょうが、仕様書を見つけることはできず、いろいろな方法を試している中で、Azure Functionsで変数を記述するファイルにconnection stringの値を書いて、それをfunction.jsonで参照するように書き換えた時に問題なく動いたため、今回の問題を解決する方法に気付きました。その手順は、次のようになります。

 

1.Azure Functionsで変数を記述するファイルにconnection stringを記述する

Azure Functionsではセキュリティキーなどプログラムに直書きすべきではない情報を記述し、関数からそれを参照できる機能があります。開発のためにローカルで関数を実行している場合は、local.settings.jsonというプロジェクトの直下にあるファイルに記述します。さらに、Azure上で実行している場合は、ポータル上で「設定 > 構成」とたどっていった「アプリケーションの設定」に変数を追加すると、参照できるようになります。

例えば、local.settings.jsonに次のように変数を追加します。

Azureポータル上では、次のページで変数を追加します。

そして、function.jsonを次のように書き換えます。

この結果、エラーが発生しなくなり、Cosmos DBに接続して操作できるようになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください