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

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を含める必要があります

binaryTargets = ["native", "rhel-openssl-1.0.x"]

Netlifyに環境変数を保存する

機密性の高い接続文字列の漏洩を防ぐため、.envファイルを.gitignoreに含めることをお勧めします。代わりに、Netlify CLIを使用して値をNetlifyに直接インポートできます。

以下のようなファイルがあると仮定します

.env
# 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のドキュメントで説明されており、そのうちの1つの方法(UIを介したアップロード)を以下に示します。

  1. サイトのNetlify管理UIを開きます。Netlify CLIを次のように使用できます
    netlify open --admin
  2. サイト設定をクリックします: Netlify管理UI
  3. 左側のサイドバーでビルドとデプロイに移動し、環境を選択します。
  4. 変数を編集をクリックし、キーDATABASE_URLの変数を作成し、その値をデータベース接続文字列に設定します。 Netlify環境変数
  5. 保存をクリックします。

新しいビルドが新しくアップロードされた環境変数を使用できるように、Netlifyでの新規ビルドとデプロイを開始します。

netlify deploy

デプロイされたアプリケーションをテストできるようになりました。

接続プール

NetlifyのようなFunction-as-a-Serviceプロバイダーを使用する場合、パフォーマンス上の理由からデータベース接続をプールすることが有益です。これは、すべての関数呼び出しがデータベースへの新しい接続を引き起こし、すぐにオープン接続が枯渇する可能性があるためです。

接続プールにはAccelerate、または組み込みの接続プールを備えたPrisma Postgresを使用して、Prisma Clientのバンドルサイズを削減し、コールドスタートを回避できます。

サーバーレス環境での接続管理に関する詳細は、弊社の接続管理ガイドを参照してください。

© . All rights reserved.