このコンテンツは自動機械翻訳サービスによる翻訳版であり、皆さまの便宜のために提供しています。原本の英語版と異なる誤り、省略、解釈の微妙な違いが含まれる場合があります。ご不明な点がある場合は、英語版原本をご確認ください。
多くの開発者、データサイエンティスト、研究者はPythonノートブックで業務の多くを行っています。Pythonノートブックは、10年以上前からデータサイエンスと共有のデファクトスタンダードとなっています。Notebookは、コーディング、データの探索、アイデアのプロトタイプ、結果の共有が容易なため、人気があります。Cloudflareではこれらを大いに活用しており、HTTPトラフィックの傾向の分析から、Workers Analytics Engineへのクエリー、R2に保存されている独自のIcebergテーブルのクエリーまで、ノートブックを使用する開発者がますます増えています。
従来のノートブックは信じられないほど強力ですが、コラボレーション、再現性、またはデータアプリとしてのデプロイメントを念頭に置いて構築されていません。使用がチームやワークフロー全体で拡大するにつれ、こうした制限は、大規模な作業になるという現実に直面しています。
marimoはこれらの課題を念頭に置き、ノートブックエクスペリエンスを再構築しました。これは、再現可能で、Gitで追跡しやすく、スタンドアロンのスクリプトとして実行可能で、デプロイできるように構築された、オープンソースのリアクティブなPythonノートブックです。Cloudflareの開発者に、この合理化され、本番環境に適したエクスペリエンスを提供するために、marimoチームと提携しました。ツールに苦労する時間を減らし、データの調査により多くの時間を費やすことができます。
本日、Cloudflareは次の3つのことを発表できることを嬉しく思います。
marimoノートブックに組み込まれたCloudflare認証 –ノートブックから直接Cloudflareアカウントでサインインし、APIトークンを作成することなく、Cloudflare APIを使用できます
オープンソースノートブックの例 – R2、Workers AI、D1、などのサービスのすぐに実行できるノートブックの例で、Cloudflareのデータを活用できます
Cloudflare Containers上でmarimoを実行する – ノートパソコンをCloudflare Containersに簡単にデプロイし、スケーラブルで長期的なデータワークフローを実現
今すぐmarimoでCloudflareデータの調査を始めたいですか? notebook.cloudflare.com にアクセスしてください。または、marimoの詳細、ノートブック内から認証を簡単に行えるようにした方法、およびMarioを使用してCloudflare上のノートブックやアプリを探索・共有する方法について、この記事を続けてお読みください。
なぜmarimo?
marimoは、データを扱うために特別に設計されたオープンソースのリアクティブなPythonノートブックであり、従来のノートブックで多くの問題を解決するために、一から構築されています。
marimoが従来のノートブックと一線を画す中核的な機能は、セル上で静的に推論されるデータフローグラフによって動作するリアクティブな実行モデルです。セルを実行するか、UI要素とのインタラクションを行い、marimoは依存するセルを実行するか、古いセルとマークします(任意の選択)。これにより、コードと出力の一貫性が維持され、バグが発生する前に防止され、データを実験するスピードが劇的に向上します。
リアクティブ実行のおかげで、ノートブックはデータアプリケーションとしてデプロイ可能で、共有しやすくなります。marimoノートブックは、ローカル、クラウドサーバー、GPU上で実行できます。つまり、従来ソフトウェアを実行できる場所であればどこでも、WebAssemblyを使って完全にブラウザ上で実行することもでき、共有コストをゼロに抑えることができます。
marimoノートブックはPythonとして保存されているため、Gitによるバージョン、スクリプトまたはパイプラインとしての実行、pytestによるテスト、uvによるインラインパッケージ要件、ノートブックから他のPythonモジュールへのシンボルのインポートなど、ソフトウェアのすべての利点を享受できます。marimoはPythonとして保存されていますが、SQLやDuckDB、Postgres、Icebergベースのデータカタログなどのデータソースもサポートしています(RAM内のデータに加え、marimoのAIアシスタントがアクセスできます)。
marimoノートブックがどのようなものかを知るために、以下の埋め込まれたノートブックの例をご覧ください。
marimoを使用してCloudflareのデータを探る
marimoノートブックでお客様独自のCloudflareデータをご検討いただけますか?最も簡単な方法は、notebooks.cloudflare.com にアクセスし、WebAssembly (Wasm) を介してブラウザで直接ノートブックの例を実行することです。ソースはノートブックサンプル GitHub repoで閲覧することもできます。
独自のノートブックを作成してローカルで実行したいですか?ここでは、Cloudflareアカウントで認証する方法と、アクセスできるゾーンを一覧表示する方法を簡単に示した例を紹介します。
mkdir cloudflare-zones-notebook
cd cloudflare-zones-notebook
3. 新しいuvプロジェクトを初期化する(これにより.venvpyproject.toml
):
uv init
4. marimoと必要な依存関係を追加します:
uv add marimo
5. list-zones.py
というファイルを作成し、次のノートブックに貼り付けます:
import marimo
__generated_with = "0.14.10"
app = marimo.App(width="full", auto_download=["ipynb", "html"])
@app.cell
def _():
from moutils.oauth import PKCEFlow
import requests
# Start OAuth PKCE flow to authenticate with Cloudflare
auth = PKCEFlow(provider="cloudflare")
# Renders login UI in notebook
auth
return (auth,)
@app.cell
def _(auth):
import marimo as mo
from cloudflare import Cloudflare
mo.stop(not auth.access_token, mo.md("Please **sign in** using the button above."))
client = Cloudflare(api_token=auth.access_token)
zones = client.zones.list()
[zone.name for zone in zones.result]
return
if __name__ == "__main__":
app.run()
6.ノートブックエディターを開きます:
uv run marimo edit list-zones.py --sandbox
7.ノートブックにあるOAuthプロンプトからログインします。認証が行われると、最終セルにCloudflareゾーンの一覧が表示されます。
以上です!ここから、ノートブックを展開して、Workers AIモデルを呼び出したり、R2 Data CatalogでIcebergテーブルをクエリしたり、Cloudflare APIとやり取りしたりできます。
ノートブック内でOAuthがどのように機能するか
OAuthはノートブックとCloudflareの間の安全なハンドシェイクのようなものだと考えてください。APIトークンをコピーして貼り付ける代わりに、「Cloudflareでサインインする」をクリックするだけで、ノートブックが処理します。
私たちは、クライアントシークレットを回避し、コード傍受攻撃から保護するセキュアなOAuth 2.0フローであるPKCE(Proof Key for Code Exchange)を使用して、このエクスペリエンスを構築しました。PKCEは、ログイン後にトークンと交換されるワンタイムコードを生成することによって機能します。このコードは、クライアントのシークレットを共有することはありません。PKCEの仕組みについての詳細はこちらをご覧ください。
ログインウィジェットは、mutils.oauthに存在します。これは、Cloudflareとmarimoがコラボレーションし、ノートブックでOAuth認証をシンプルかつ安全にします。使用するには、次のようなセルを作成するだけです。
auth = PKCEFlow(provider="cloudflare")
# Renders login UI in notebook
auth
セルを実行すると、「Cloudflareでサインイン」ボタンが表示されます:
ログインすると、Cloudflare APIを使用する際に渡すことができる読み取り専用のCloudflare トークンが作成されます。
Cloudflare上でmarimoを実行する:WorkersとContainers
marimoノートブックをローカルで実行することに加えて、Cloudflareを使用して、Workers Static AssetsまたはCloudflare Containers経由で共有して実行することができます。
共有したいローカルノートブックがあれば、Workersに公開できます。これが機能するのは、marimoがノートブックをWebAssemblyにエクスポートできるため、ブラウザー内で完全に実行できるからです。2つのコマンドで始められます。
marimo export html-wasm notebook.py -o output_dir --mode edit --include-cloudflare
npx wrangler deploy
ノートブックが認証を必要とする場合は、Cloudflare Accessでレイヤー化して、セキュアな認証済みアクセスを実現できます。
より多くの計算処理、永続的セッション、長時間実行されるタスクを必要とするノートブックの場合は、新しいコンテナプラットフォームにmarimoをデプロイできます。手始めに、GitHubにあるmarimoコンテナの例をご覧ください。
Cloudflare + marimoの次なる展開
このブログ記事は、Cloudflareとmarimoのパートナーシップの始まりに過ぎません。WebAssemblyベースの共同ノートブックプラットフォームを使用して、Cloudflareデータを調査する方法を目にすることを楽しみにしていますが、私たちはまた、データを処理するための本格的なコンピューティングを導入し、大規模な分析やバッチジョブを正しく実行できるようにしたいと考えています。ます。今後の動きにご注目ください。