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#関数を作成する 」を参照してください。