新規投稿のお知らせを受信されたい方は、サブスクリプションをご登録ください:

marimoを利用したPythonノートブックでCloudflareのデータを探求しましょう

2025-07-16

4分で読了
この投稿はEnglishおよび简体中文でも表示されます。

このコンテンツは自動機械翻訳サービスによる翻訳版であり、皆さまの便宜のために提供しています。原本の英語版と異なる誤り、省略、解釈の微妙な違いが含まれる場合があります。ご不明な点がある場合は、英語版原本をご確認ください。

多くの開発者、データサイエンティスト、研究者はPythonノートブックで業務の多くを行っています。Pythonノートブックは、10年以上前からデータサイエンスと共有のデファクトスタンダードとなっています。Notebookは、コーディング、データの探索、アイデアのプロトタイプ、結果の共有が容易なため、人気があります。Cloudflareではこれらを大いに活用しており、HTTPトラフィックの傾向の分析から、Workers Analytics Engineへのクエリー、R2に保存されている独自のIcebergテーブルのクエリーまで、ノートブックを使用する開発者がますます増えています。

従来のノートブックは信じられないほど強力ですが、コラボレーション、再現性、またはデータアプリとしてのデプロイメントを念頭に置いて構築されていません。使用がチームやワークフロー全体で拡大するにつれ、こうした制限は、大規模な作業になるという現実に直面しています。

marimoはこれらの課題を念頭に置き、ノートブックエクスペリエンスを再構築しました。これは、再現可能で、Gitで追跡しやすく、スタンドアロンのスクリプトとして実行可能で、デプロイできるように構築された、オープンソースのリアクティブなPythonノートブックです。Cloudflareの開発者に、この合理化され、本番環境に適したエクスペリエンスを提供するために、marimoチームと提携しました。ツールに苦労する時間を減らし、データの調査により多くの時間を費やすことができます。

本日、Cloudflareは次の3つのことを発表できることを嬉しく思います。

今すぐ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アカウントで認証する方法と、アクセスできるゾーンを一覧表示する方法を簡単に示した例を紹介します。

  1. まだお済みでない場合は、インストールガイドに従ってUVをインストールしてください。

  2. ノートブックの新しいプロジェクトディレクトリを作成します:

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ボタンでサインインする例

ログインすると、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データを調査する方法を目にすることを楽しみにしていますが、私たちはまた、データを処理するための本格的なコンピューティングを導入し、大規模な分析やバッチジョブを正しく実行できるようにしたいと考えています。ます。今後の動きにご注目ください。

Cloudflareは企業ネットワーク全体を保護し、お客様がインターネット規模のアプリケーションを効率的に構築し、あらゆるWebサイトやインターネットアプリケーションを高速化し、DDoS攻撃を退けハッカーの侵入を防ぎゼロトラスト導入を推進できるようお手伝いしています。

ご使用のデバイスから1.1.1.1 にアクセスし、インターネットを高速化し安全性を高めるCloudflareの無料アプリをご利用ください。

より良いインターネットの構築支援という当社の使命について、詳しくはこちらをご覧ください。新たなキャリアの方向性を模索中の方は、当社の求人情報をご覧ください。
開発者プラットフォームAPIR2Data CatalogNotebook

Xでフォロー

Keith Adler|@Talador12
Akshay Agrawal (Guest Author)|@akshaykagrawal
Myles Scolnick (Guest Author)|@themylesfiles
Cloudflare|@cloudflare

関連ブログ投稿

2025年6月18日 13:00

Cloudflare Log Explorerの一般提供により、ネイティブの可観測性とフォレンジックスがご利用可能になりました

Cloudflareダッシュボードで可観測性とフォレンジック機能の直接の利用を可能にする製品、Cloudflare Log Explorerの一般提供を発表いたします。...