Workers Script Upload API または Version Upload API を直接使う場合、multipart/form-data のアップロードでは metadata パートの指定が必要です。このメタデータは Worker の設定を JSON 形式で定義します。wrangler.toml ファイル に相当します。
{
"main_module": "main.js",
"bindings": [
{
"type": "plain_text",
"name": "MESSAGE",
"text": "Hello, world!"
}
],
"compatibility_date": "2021-09-14"
}次の属性はトップレベルで設定できます。
-
main_modulestring必須- 実行される Worker のモジュールエントリポイントを含むパート名です。例:
main.js。
- 実行される Worker のモジュールエントリポイントを含むパート名です。例:
-
assetsobject任意- Worker の アセット 設定です。
configobject任意- html_handling は、HTML コンテンツへのリクエストのリダイレクトと書き換えを決めます。
- not_found_handling は、リクエストが静的アセットに一致しないときのレスポンスを決めます。
jwtフィールドは、アセットを Worker に添付することを許可するトークンです。
-
keep_assetsboolean任意- 以前アップロードした Worker バージョンのアセットを保持するかどうかを指定します。完了トークンの代わりに使います。
-
bindingsarray[object] 任意- Worker に公開する バインディング です。
-
placementobject任意- Worker の Smart Placement オブジェクトです。
modeフィールドは、自動配置用のsmartのみをサポートします。
-
compatibility_datestring任意- Workers ランタイムの対象サポートを示す Compatibility Date です。この日付より後に入った、後方互換性のないランタイム修正はこの Worker に影響しません。
compatibility_dateの設定を強く推奨します。API 経由のアップロードで未設定の場合、フラグが有効になる前の最も古い互換日(2021-11-02)がデフォルトになります。
- Workers ランタイムの対象サポートを示す Compatibility Date です。この日付より後に入った、後方互換性のないランタイム修正はこの Worker に影響しません。
-
compatibility_flagsarray[string] 任意- Workers ランタイムの特定機能を有効または無効にする Compatibility Flags です。今後の機能を有効にしたり、
compatibility_dateに含まれない個別の変更をオプトイン / オプトアウトしたりするときに使います。
- Workers ランタイムの特定機能を有効または無効にする Compatibility Flags です。今後の機能を有効にしたり、
すぐにデプロイするアップロード では、次の 追加 属性をトップレベルで設定できます。
-
migrationsarray[object] 任意- 適用する Durable Objects のマイグレーション です。
-
logpushboolean任意- この Worker で Logpush を有効にするかどうかです。
-
tail_consumersarray[object] 任意- 対象 Worker のログを消費する Tail Workers です。
-
tagsarray[string] 任意- この Worker のタグとして使う文字列のリストです。
-
annotationsobject任意- このアップロードで作成される Worker バージョンのアノテーションオブジェクトです。Version Upload API でも利用できます。
workers/messageは、バージョン用のカスタムメッセージを指定します。workers/tagは、バージョン用のカスタム識別子を指定します。
追加属性: Version Upload API
バージョンアップロード では、次の 追加 属性をトップレベルで設定できます。
annotationsobject任意- Worker バージョン固有のアノテーションオブジェクトです。
workers/messageは、バージョン用のカスタムメッセージを指定します。workers/tagは、バージョン用のカスタム識別子を指定します。workers/aliasは、このバージョン用のカスタムエイリアスを指定します。
Workers は バインディング を使って、Cloudflare Developer Platform 上のリソースと連携できます。metadata パートにバインディングを追加する方法は、次の JSON 例を参照してください。
{
"bindings": [
{
"type": "ai",
"name": "<VARIABLE_NAME>"
},
{
"type": "analytics_engine",
"name": "<VARIABLE_NAME>",
"dataset": "<DATASET>"
},
{
"type": "assets",
"name": "<VARIABLE_NAME>"
},
{
"type": "browser_rendering",
"name": "<VARIABLE_NAME>"
},
{
"type": "d1",
"name": "<VARIABLE_NAME>",
"id": "<D1_ID>"
},
{
"type": "durable_object_namespace",
"name": "<VARIABLE_NAME>",
"class_name": "<DO_CLASS_NAME>"
},
{
"type": "hyperdrive",
"name": "<VARIABLE_NAME>",
"id": "<HYPERDRIVE_ID>"
},
{
"type": "kv_namespace",
"name": "<VARIABLE_NAME>",
"namespace_id": "<KV_ID>"
},
{
"type": "mtls_certificate",
"name": "<VARIABLE_NAME>",
"certificate_id": "<MTLS_CERTIFICATE_ID>"
},
{
"type": "plain_text",
"name": "<VARIABLE_NAME>",
"text": "<VARIABLE_VALUE>"
},
{
"type": "queue",
"name": "<VARIABLE_NAME>",
"queue_name": "<QUEUE_NAME>"
},
{
"type": "r2_bucket",
"name": "<VARIABLE_NAME>",
"bucket_name": "<R2_BUCKET_NAME>"
},
{
"type": "secret_text",
"name": "<VARIABLE_NAME>",
"text": "<SECRET_VALUE>"
},
{
"type": "service",
"name": "<VARIABLE_NAME>",
"service": "<SERVICE_NAME>",
"environment": "production"
},
{
"type": "vectorize",
"name": "<VARIABLE_NAME>",
"index_name": "<INDEX_NAME>"
},
{
"type": "version_metadata",
"name": "<VARIABLE_NAME>"
}
]
}