メインコンテンツにスキップ

Azure Functions へのデプロイ

このガイドでは、Node.js ベースの Function App を Azure Functions を使用して Azure にデプロイする際に発生する一般的な問題を回避する方法について説明します。

Azure Functions はサーバーレスのデプロイプラットフォームです。コードをデプロイするためにインフラストラクチャを維持する必要はありません。Azure Functions では、基本的な構成要素は Function App です。Function App は、関数が実行される Azure 内の実行コンテキストを提供します。これは、Azure がまとめて管理、デプロイ、およびスケーリングする 1 つまたは複数の個別の関数で構成されています。複数の関数を単一の論理ユニットとして編成およびまとめて管理できます。

前提条件

  • Prisma ORM を使用した既存の Function App プロジェクト

知っておくべきこと

Prisma ORM は Azure Functions とうまく連携しますが、アプリケーションをデプロイする前に注意すべき点がいくつかあります。

複数のバイナリターゲットを定義する

Function App をデプロイする場合、Azure Functions がリモートビルドを実行するオペレーティングシステムは、関数をホストするために使用されるオペレーティングシステムとは異なります。したがって、Prisma スキーマで次の binaryTargets オプション を指定することをお勧めします。

schema.prisma
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 リファレンス を確認してください。