Atlas では Azure Functions を使用できます。
ベストプラクティス
次のベストプラクティスを使用して、Azure Functions と Atlas 間の接続を適切に管理します。
Azure関数ハンドラーの メソッドの外部でMongoDBサーバーへのクライアントを定義します。
Run
関数を呼び出すたびに新しい
MongoClient
オブジェクトを定義しないでください。定義すると、ドライバーは関数を呼び出すごとに新しいデータベース接続を作成します。こうなると、コストが高くなり、アプリケーションがデータベース接続制限を超えてしまう可能性があります。新しいMongoClient
を定義するときは、次の点に注意してください。MongoClient
オブジェクトを一度だけ作成します。オブジェクトを保存し、関数の呼び出し全体で
MongoClient
を再利用できるようにします。
この接続例では、既存のデータベース接続を再利用して、データベースとの通信を高速化し、データベースへの接続数をアプリケーション トラフィックに関して適切なレベルに維持します。
Azure Functions から Atlas クラスターへのネットワーク アクセスを制限します。
Atlas クラスターと Azure Functions 間のネットワークピアリング接続を使用してプライベート ネットワーク経由で Atlas クラスターに接続するか、またはプライベートエンドポイントを使用して、 IP アクセス リスト からプライベート IP アドレスのみを許可できるようにします。
プライベートネットワークを使用しない場合は、NAT ゲートウェイ を使用して Atlas クラスターに接続することを検討してください。静的アウトバウンドIPアドレスを確保するための、アウトバウンドIPアドレスの変更と戦略を検討します。
maxIdleTimeMS を
60000
に設定すると、アイドルタイムが 1 分経過した後に接続が自動的に閉じられます。maxIdleTimeMS
を調整すると、サーバーレス関数からのタイムアウト エラーの発生を減らすことができます。
接続例
mongodb-developer
リポジトリのAzure Functions の例には、Atlas クラスターを使用してMongoDB C#ドライバーとAzure Functions を操作する方法を示す例コードが含まれています。
Visual Studio Code でAzure Functions を使用する方法の詳細については、クイックスタート: Visual Studio Code を使用してAzureでC#関数を作成する を参照してください。
Visual Studio でAzure Functions を使用する方法の詳細については、「 クイックスタート: Visual Studio を使用してAzureで最初のC#関数を作成する 」を参照してください。