Open2

【Cloudflare Workers】wrangler.toml について

まさぴょんまさぴょん

wrangler とは?

Wrangler(ラングラー)とは、Cloudflare Workersの開発、ビルド、デプロイを支援するためのコマンドラインツールです。
これを使用することで、ローカル環境でのテストや、Cloudflareのエッジネットワークへのデプロイが簡単に行えます。

wrangler.tomlファイルとは?

wrangler.tomlファイルは、Wranglerがプロジェクトを設定・管理するための構成ファイルです。
このファイルには、プロジェクトの基本情報や、使用するサービス、環境変数などの設定が含まれます。

Honoプロジェクトのwrangler.tomlファイルのSample

Honoプロジェクトのwrangler.tomlファイルのSampleを分析していきます。

wrangler.toml
name = "server"

# エントリーポイント
main = "src/index.ts"
compatibility_date = "2024-10-27"
compatibility_flags = [ "nodejs_compat" ]

# [vars]
# MY_VAR = "my-variable"

# [[kv_namespaces]]
# binding = "MY_KV_NAMESPACE"
# id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# [[r2_buckets]]
# binding = "MY_BUCKET"
# bucket_name = "my-bucket"

# [[d1_databases]]
# binding = "DB"
# database_name = "my-database"
# database_id = ""

# [ai]
# binding = "AI"

# [observability]
# enabled = true
# head_sampling_rate = 1

wrangler.tomlファイルの内容について、以下に詳しく説明します。

基本設定

  1. name = "server"

    • プロジェクト名を指定しています。この名前は、Cloudflare Workers上でのデプロイ名となります。
  2. main = "src/index.ts"

    • Workersのエントリーポイントとなるスクリプトファイルを指定しています。ここでは、src/index.tsがメインファイルになります。
  3. compatibility_date = "2024-10-27"

    • Workersの互換性日付を指定しています。この日付を基準に、Cloudflare Workersのランタイムが適用されるため、将来の更新による影響を制御できます。
  4. compatibility_flags = [ "nodejs_compat" ]

    • 互換性フラグを指定しています。"nodejs_compat"を設定することで、Node.js互換モードが有効になり、一部のNode.js APIやモジュールを使用できます。

コメントアウトされたセクション

以下のセクションはコメントアウトされていますが、必要に応じて設定を有効化できます。

  1. # [vars]

    • 環境変数を定義するセクションです。ここで設定した変数は、Workers内でENV_VAR_NAMEとして参照できます。
    # [vars]
    # MY_VAR = "my-variable"
    
  2. # [[kv_namespaces]]

    • **Workers KV(キーバリューストア)**をバインドするための設定です。データの高速な読み書きが可能になります。
    # [[kv_namespaces]]
    # binding = "MY_KV_NAMESPACE"  # Workers内での参照名
    # id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # KVネームスペースのID
    
  3. # [[r2_buckets]]

    • **Cloudflare R2(オブジェクトストレージ)**のバケットをバインドする設定です。大量のデータを効率的に扱えます。
    # [[r2_buckets]]
    # binding = "MY_BUCKET"  # Workers内での参照名
    # bucket_name = "my-bucket"  # R2バケットの名前
    
  4. # [[d1_databases]]

    • **Cloudflare D1(データベース)**をバインドする設定です。SQLデータベースとして利用できます。
    # [[d1_databases]]
    # binding = "DB"  # Workers内での参照名
    # database_name = "my-database"  # D1データベースの名前
    # database_id = ""  # データベースのID(自動取得可能)
    
  5. # [ai]

    • AI機能に関する設定セクションです。Cloudflareが提供するAIサービスを利用する際に使用します。
    # [ai]
    # binding = "AI"  # Workers内での参照名
    
  6. # [observability]

    • **観測性(オブザーバビリティ)**に関する設定です。パフォーマンスやエラーの監視を行う際に使用します。
    # [observability]
    # enabled = true  # 観測性を有効化
    # head_sampling_rate = 1  # サンプリングレートの設定
    

まとめ

wrangler.tomlファイルは、Cloudflare Workersプロジェクトの動作を細かく制御する重要なファイルです。各設定を適切に行うことで、Workersの機能を最大限に活用できます。

  • 基本設定では、プロジェクト名やエントリーポイント、互換性設定を行います。
  • コメントアウトされたセクションを有効化すると、追加のサービスや機能(KV、R2、D1、AI、観測性など)を利用できます。

必要に応じてコメントアウトを解除し、各サービスの設定を行ってください。