Azure Functions にデプロイ
このガイドでは、Azure Functions を使用して、Node.js ベースの関数アプリを Azure にデプロイする際によくある問題を回避する方法を説明します。
Azure Functions はサーバーレスのデプロイプラットフォームです。コードをデプロイするためにインフラを維持する必要はありません。Azure Functions の基本的な構成要素は、関数アプリです。関数アプリは、Azure で関数が実行される実行コンテキストを提供します。それは、Azure がまとめて管理、デプロイ、スケーリングする1つ以上の個別の関数で構成されます。複数の関数を1つの論理ユニットとして組織化し、まとめて管理することができます。
前提条件
- Prisma ORM を使用する既存の関数アプリプロジェクト
知っておくべきこと
Prisma ORM は Azure Functions とうまく連携しますが、アプリケーションをデプロイする前にいくつか注意すべき点があります。
複数のバイナリターゲットを定義する
関数アプリをデプロイする際、Azure Functions がリモートビルドを実行するオペレーティングシステムは、関数をホストするオペレーティングシステムとは異なります。そのため、Prisma スキーマで以下の binaryTargets
オプションを指定することをお勧めします。
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "debian-openssl-1.1.x"]
}
接続プール
一般的に、FaaS (Function as a Service) 環境を使用してデータベースと対話する場合、関数の呼び出しごとにデータベースへの新しい接続が発生する可能性があります。これは、常時稼働している Node.js サーバーでは問題になりません。したがって、より良いパフォーマンスを得るためにDB接続をプールすることが有益です。この問題を解決するには、Prisma Accelerate を使用できます。その他の解決策については、サーバーレス環境向け接続管理ガイドを参照してください。
まとめ
Prisma Client の API についてさらに詳しく知るには、関数ハンドラを探索し、Prisma Client API リファレンスをご覧ください。