目的
Azure Cosmos DB によってトリガーされる関数を作成する
関数の作成にはVSCodeを使用する
監視対象のCosmosDB
Azure Cosmos DB アカウント:hashimoto-cosmosdb
データベース名:TestDB
コレクション名:TestTable
関数の作成
1.トリガーの選択
2.接続情報の選択
+ Create new local app settingで設定を新規作成
3.監視対象のCosmosDBアカウント名を選択
4.監視対象のデータベース名(TestDB)を入力
5.監視対象のコレクション名(TestTable)を入力
6.リースを格納するコレクション名(leases※デフォルト)を入力
7.リースを格納するコレクションが無かった場合に自動生成するかどうかを選択
CosmosTrigger1/function.jsonの内容
local.settings.jsonの内容
hashimotocosmosdb_DOCUMENTDBは、2.接続情報の選択で生成されたもの
※ local.settings.jsonは、ローカル環境での実行/デバッグ用の設定のため、クラウド環境での実行には環境変数の追加が必要
環境変数の追加
1.CosmosDBの接続文字列をコピーする ※リースを格納するため書き込み権限が必要
Azure Portalの場合
- 該当関数アプリの
構成-+ 新しいアプリケーション設定から、先ほどコピーした CosmosDBの接続文字列を名前CosmosDbConnectionStringで追加する
VSCodeの場合
公式ドキュメントを参考に関数アプリの設定を更新する
- F1 キーを押してコマンド パレットを開き、コマンド
Azure Functions: Add New Setting...を検索して実行する - 対象の関数アプリを選択します。 プロンプトで、次の情報を入力する
-
新しいアプリ設定名を入力する:
CosmosDbConnectionString - "CosmosDbConnectionString" の値を入力する: 先ほどコピーした CosmosDBの接続文字列
-
新しいアプリ設定名を入力する:
- F1 キーをもう一度押してコマンド パレットを開き、コマンド
Azure Functions: Download Remote Settings...を検索して実行する - 前の記事で作成した関数アプリを選択します。 [すべてはい] を選択して既存のローカル設定を上書きする
- 以下のように
local.settings.jsonにCosmosDbConnectionStringが追加される
関数の設定を更新する
既存関数の場合
CosmosTrigger1/function.jsonの内容を変更する
新規関数を作成する場合
「2.接続情報の選択」でlocal.settings.jsonに追加した設定を選択
※local.settings.jsonのCosmosDbConnectionStringとhashimotocosmosdb_DOCUMENTDBは一致しており内容に問題があるわけではない
動作確認
コレクションにアイテムを追加
関数ログが出力されることを確認
※アイテムの追加、更新ではトリガーされるが、削除ではトリガーされない
















