Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Netlify から Pages への移行

最終更新 Markdown で表示Agent セットアップ

このチュートリアルでは、Netlify アプリケーションを Cloudflare Pages へ移行します。

ビルドコマンドとビルドディレクトリを確認する

アプリケーションを Cloudflare Pages へ移すには、ビルドコマンドとビルドディレクトリを確認します。Cloudflare Pages はこの情報でアプリケーションをビルドしてデプロイします。

Netlify Dashboard で、デプロイしたいプロジェクトを探します。GitHub リポジトリからデプロイする設定になっているはずです。

Netlify Dashboard でサイトを選ぶ

サイトのダッシュボードで Site Settings を選び、続いて Build & Deploy を選びます。

サイトのダッシュボードで Site Settings を選ぶ サイドバーで Build and Deploy を選ぶ

Build & Deploy タブで Build settings パネルを探します。ここに Build commandPublish directory があります。Cloudflare Pages へデプロイするときに使うので控えておきます。次の画像では、Build commandyarn buildPublish directorybuild/ です。

Build command と Publish directory の欄を確認する

リダイレクトとヘッダーを移行する

公開ディレクトリに _redirects ファイルがある場合は、同じファイルを Cloudflare Pages でも使え、リダイレクトは問題なく実行されます。リダイレクトが netlify.toml にある場合は、_redirects フォルダーへ移す必要があります。Cloudflare Pages の 高度なリダイレクトの対応 は現時点では限定的です。静的リダイレクトが 2000 件を超える場合や、動的リダイレクトルールが 100 件を超える場合は、Bulk Redirects の利用を推奨します。

ヘッダーファイルも、公開ディレクトリの _headers フォルダーへ移せます。_headers で定義したカスタムヘッダーは、関数のレスポンスには現時点では適用されない点に注意してください。関数のルートが URL パターンに一致する場合でも同様です。ヘッダーの扱いについては Headers を参照してください。

フォーム

フォームコンポーネントから、<form> タグの data-netlify = "true" 属性または Netlify 属性を削除します。フォームの処理は Pages Function として実装し、送信内容をデータベースや Airtable に保存できます。詳細は Pages Functions でフォーム送信を処理する チュートリアルを参照してください。

サーバーレス関数

Netlify functions と Pages Functions は、プロジェクト直下の functions ディレクトリでサーバーレス関数を扱うという、同じファイルシステム規約を使います。ただし、構文とデプロイ方法は異なります。Pages Functions は Cloudflare Workers 上で動き、デフォルトで Cloudflare のグローバルネットワーク上で動作します。デプロイに追加のコードや設定は不要です。

Cloudflare Pages Functions にはミドルウェアもあり、関数のルートハンドラーの前や後に実行する処理を書けます。

関数の構文

Netlify functions は、event と context を引数に取る非同期のイベントハンドラーをエクスポートします。Pages Functions では、context オブジェクトを受け取る onRequest 関数を 1 つエクスポートします。context オブジェクトには requestenvparams などリクエストの情報が含まれ、新しい Response を返します。詳細は 最初の関数を書く を参照してください。

Netlify functions の Hello World:

exports.handler = async function (event, context) {
	return {
		statusCode: 200,
		body: JSON.stringify({ message: "Hello World" }),
	};
};

Pages Functions の Hello World:

export async function onRequestPost(request) {
	return new Response(`Hello world`);
}

その他の Netlify 設定

netlify.toml には、プレビューデプロイ、公開ディレクトリの指定、プラグインなど、Pages でも使える設定があることがあります。設定を移行したら、このファイルは削除できます。

アクセス管理

アクセス管理は Cloudflare Zero Trust へ移行できます。アプリケーションのユーザー認証、イベントログ、リクエストを管理できます。

新しい Pages プロジェクトを作成する

ビルドディレクトリとビルドコマンドが分かったら、プロジェクトを Cloudflare Pages へ移せます。

はじめに では、GitHub プロジェクトを Cloudflare Pages に追加する手順を説明しています。

Pages でカスタムドメインを使う場合は、現在デプロイしている Netlify アプリケーションと同じカスタムドメインを設定できます。Pages プロジェクトへのカスタムドメインの割り当ては カスタムドメイン を参照してください。

旧アプリケーションを片付け、ドメインを割り当てる

Cloudflare ダッシュボードで DNS Records ページを開きます。

Records を開く ↗

ドメインの CNAME レコードが Netlify から Cloudflare Pages へ更新されていることを確認します。DNS レコードを更新すると、リクエストは Pages アプリケーションへ向かいます。

DNS では、レコードの Content<SUBDOMAIN>.pages.dev サブドメインにしてください。

以上の手順で、Netlify プロジェクトを Cloudflare Pages へ移行できます。

役に立ちましたか?