このサイトは非公式の日本語訳です。Cloudflare・EmDashプロジェクトが運営するサイトではありません。

このページで決めること:EmDashのプラグインを使うか、使う場合はどの形式まで使うか

決める前に知っておくこと

EmDashのプラグインは、コンテンツの保存などのイベントに応じた処理、独自のデータの保存、管理画面へのページや設定の追加、APIルートの提供などができます。形式は次の2つです。

サンドボックス型プラグイン ネイティブ型プラグイン
動く場所 サンドボックスランナーが用意する、サイトとは分けられた実行環境 Astroのサイトと同じプロセス
インストール 管理画面のレジストリから、または astro.config.mjssandboxed: [] に登録 npmでインストールし、astro.config.mjsplugins: [] に登録してデプロイ
できること 宣言した権限(Capability)の範囲のEmDashのAPIだけを使える。CPU時間などに上限がある サイトと同じ権限を持つ。Reactの管理ページ、Portable Textの描画コンポーネント、公開ページへのHTML・スクリプトの挿入ができる
分離 分けられている 分けられていない。不具合がサイト全体に影響することがある

Cloudflare Workersでサンドボックス型プラグインを動かすには、Worker Loaderのバインディング(LOADER)とWorkersの有料プランが必要です。Cloudflare版の公式テンプレートは、このバインディングをコメントアウトした状態で作られます。サンドボックスランナーがない環境では、sandboxed: [] に登録したプラグインは読み込まれません。

プラグインが設定画面で受け取る秘密の値(外部サービスのAPIキーなど)は、現在、暗号化されずにデータベースに保存されます。

公式の推奨

  • React管理ページ、Portable Textの描画コンポーネント、ページフラグメント、サイトのプロセスへの直接アクセスのどれかが必要な場合を除き、サンドボックス型プラグインを選びます。(公式「プラグイン概要」「プラグイン形式の選び方」)
  • プラグインは、信頼できる公開者のものだけをインストールします。サンドボックス型でも、承認した権限の操作はできます。例えば content:write を承認すると、プラグインはコンテンツを変更できます。(公式「プラグインのインストール」)
  • インストールと更新のときは、同意画面で要求される権限を確認します。レジストリのプラグインの更新で権限が増える場合は、改めて承認が求められます。(公式「プラグインのインストール」)

選択肢の比較

A. 使わない B. サンドボックス型のみ C. ネイティブ型も使う
概要 EmDashの標準機能だけで運用する レジストリや sandboxed: [] から、サンドボックス型プラグインだけを入れる サンドボックス型に加え、plugins: [] にネイティブ型プラグインを登録する
向いている場合 標準機能で必要なことが足りる 標準機能にない機能を足したいが、サイトと分けて動かしたい 独自のブロックの描画、Reactの管理ページ、公開ページへのスクリプトの挿入が必要
注意点 標準機能にない機能は使えない Cloudflareでは有料プランとWorker Loaderが必要。承認した権限の範囲の操作はできる 分離されないため、不具合がサイト全体に影響し得る。追加・更新にはデプロイが必要
費用と手間 なし Workersの有料プラン(月額5ドルから)。Dynamic Workersは月1,000個まで含まれ、超えた分は1個・1日あたり0.002ドル プラグイン自体の追加料金はなし。コードの確認と、デプロイの手間が加わる
根拠にした公式ページ プラグイン概要 プラグインのインストール、プラグインサンドボックス、Cloudflare「Dynamic Workers Pricing」 プラグイン形式の選び方、はじめてのネイティブ型プラグイン

料金は2026年9月にCloudflare公式の料金ページで確認した値です。

別の選択肢が合う条件

公式テンプレートの機能で足りるサイトでは、Aのままで運用できます。フォームや埋め込みなど、機能を足したいが自分でコードを確認する時間がない場合は、Bでサンドボックス型だけに絞る方法があります。Workersの無料プランで運用する場合は、サンドボックス型プラグインが動かないため、AかCになります。

根拠にした公式ページ