Netlifyへのデプロイ
このガイドでは、Prisma ORMを使用するアプリケーションをNetlifyにデプロイするために必要な手順を説明します。
Netlifyは、継続的デプロイメント、静的サイト、およびサーバーレス機能のためのクラウドプラットフォームです。NetlifyはGitHubとシームレスに統合し、コミット時に自動デプロイメントを行います。以下の手順に従うことで、GitHubリポジトリからアプリケーションをデプロイするCI/CDパイプラインを作成できます。
前提条件
このガイドに従う前に、Netlifyへのデプロイを開始するようにアプリケーションをセットアップする必要があります。概要を素早く把握するには"Netlifyを始める"ガイド、デプロイオプションの詳細については"関数のデプロイ"ガイドを参照することをお勧めします。
schema.prisma
のバイナリターゲット
コードはNetlifyの環境にデプロイされるため、開発環境と必ずしも同じではありません。ビルドステップ中にNetlifyランタイムと互換性のあるクエリエンジンをダウンロードするために、binaryTargets
を設定する必要があります。このオプションを設定しない場合、デプロイされたコードには誤ったクエリエンジンがデプロイされ、機能しません。
Node.jsのバージョンに応じて、Prismaスキーマのgenerator
ブロックにはrhel-openssl-1.0.x
またはrhel-openssl-3.0.x
のいずれかを含める必要があります。
- Node.js 16および18
- Node.js 20+
binaryTargets = ["native", "rhel-openssl-1.0.x"]
binaryTargets = ["native", "rhel-openssl-3.0.x"]
Netlifyでの環境変数の保存
機密性の高い接続文字列の漏洩を防ぐために、.env
ファイルを.gitignore
に保持することをお勧めします。代わりに、Netlify CLIを使用して値をnetlifyに直接インポートできます。
次のようなファイルがあると仮定します。
# Connect to DB
DATABASE_URL="postgresql://postgres:__PASSWORD__@__HOST__:__PORT__/__DB_NAME__"
env:import
コマンドを使用して、ファイルを環境変数としてアップロードできます。
netlify env:import .env
site: my-very-very-cool-site
---------------------------------------------------------------------------------.
Imported environment variables |
---------------------------------------------------------------------------------|
Key | Value |
--------------|------------------------------------------------------------------|
DATABASE_URL | postgresql://postgres:__PASSWORD__@__HOST__:__PORT__/__DB_NAME__ |
---------------------------------------------------------------------------------'
.env
ファイルを使用していない場合
データベース接続文字列やその他の環境変数を別の方法で保存している場合は、環境変数をNetlifyに手動でアップロードする必要があります。これらのオプションはNetlifyのドキュメントで説明されています。UI経由でのアップロードはその1つの方法で、以下に説明します。
- サイトのNetlify管理UIを開きます。Netlify CLIは次のように使用できます。
netlify open --admin
- サイト設定をクリックします:
- 左側のサイドバーのビルド&デプロイに移動し、環境を選択します。
- 変数を編集をクリックし、キーが
DATABASE_URL
の変数を作成し、その値をデータベース接続文字列に設定します。 - 保存をクリックします。
これで、新しいビルドが新しくアップロードされた環境変数を使用できるように、新しいNetlifyビルドとデプロイメントを開始します。
netlify deploy
デプロイされたアプリケーションをテストできるようになりました。
接続プーリング
NetlifyのようなFunction-as-a-Serviceプロバイダーを使用する場合、パフォーマンス上の理由からデータベース接続をプーリングすることが有益です。これは、関数呼び出しごとにデータベースへの新しい接続が発生し、オープン接続をすぐに使い果たしてしまう可能性があるためです。
接続プーリングにはAccelerateを使用するか、組み込みの接続プーリングを備えたPrisma Postgresを使用すると、Prisma Clientのバンドルサイズを削減し、コールドスタートを回避できます。
サーバーレス環境での接続管理の詳細については、接続管理ガイドを参照してください。