既定では、dispatch 名前空間内の Worker は「untrusted」とみなされます。Worker 間の分離が最も強く、デプロイするコードを顧客が制御する場合に適しています。
untrusted モードでは次のとおりです。
- Worker では
request.cfオブジェクトを使えません(詳細は 制限 を参照) - Cache API を使う場合、または
fetch()でサブリクエストして Cloudflare のキャッシュ 経由で egress する場合、各 Worker は分離されたキャッシュを持ちます - 名前空間内のすべての Worker で
caches.defaultは無効です
このモードでは顧客 Worker 同士が完全に分離され、テナント間でのデータアクセスを防げます。
Worker コードを自分で管理し、分離モードを無効にしたい場合は、名前空間を「trusted」に設定できます。自社がすべての Worker コードを管理する社内プラットフォームを作るときに便利です。
trusted モードでは次のとおりです。
request.cfオブジェクトが使えるようになり、リクエストのメタデータにアクセスできます- Cache API を使うとき、名前空間内のすべての Worker が同じキャッシュ空間を共有します
名前空間を untrusted から trusted に切り替えるには:
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/{account_id}/workers/dispatch/namespaces/{namespace_name}" \
-H "Authorization: Bearer {api_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "{namespace_name}",
"trusted_workers": true
}'すでに Worker をデプロイ済みの名前空間で trusted モードを有効にした場合、request.cf オブジェクトを使うにはそれらの Worker を再デプロイする必要があります。trusted モード有効後にデプロイする新しい Worker は、自動的にアクセスできます。
request.cf は使いたいが、顧客間のキャッシュ分離は維持したい場合は、顧客固有の キャッシュキー を使うか、分離したキーで Cache API を使います。
- プラットフォームの制限 — スクリプトと API の制限を確認します
- Cache API のドキュメント — Workers でのキャッシュの動きを確認します
- Request の cf オブジェクト — cf オブジェクトのプロパティの詳細