Skip to content

Workers

workers は Workers runtime で動くワークロードです。HTTP 処理、軽量ジョブ、route ingress を担います。

基本

yaml
workers:
  web:
    build:
      fromWorkflow:
        path: .takos/workflows/deploy.yml
        job: bundle
        artifact: web
        artifactPath: dist/worker

Bindings

yaml
workers:
  web:
    build: ...
    bindings:
      d1: [primary-db]
      r2: [assets]
      kv: [cache]
      queues: [jobs]
      vectorize: [embeddings]
      analyticsEngine: [events]
      workflow: [deploy-flow]
      durableObjects: [session-do]
      services: [control-api]

bindingsspec.resources の名前を参照します。binding key と resource type は一致している必要があります。

bindingresource type
d1d1d1: [primary-db]
r2r2r2: [assets]
kvkvkv: [cache]
queuesqueuequeues: [jobs]
vectorizevectorizevectorize: [embeddings]
analyticsEngineanalyticsEngineanalyticsEngine: [events]
workflowworkflowworkflow: [deploy-flow]
durableObjectsdurableObjectdurableObjects: [session-do]
services他 workloadservices: [control-api]

代表例

Analytics

yaml
resources:
  events:
    type: analyticsEngine
    binding: ANALYTICS
    analyticsEngine:
      dataset: app-events

workers:
  web:
    build: ...
    bindings:
      analyticsEngine: [events]

Workflow Runtime

yaml
resources:
  deploy-flow:
    type: workflow
    binding: DEPLOY_WORKFLOW
    workflow:
      service: web
      export: DeployWorkflow
      timeoutMs: 300000
      maxRetries: 3

workers:
  web:
    build: ...
    bindings:
      workflow: [deploy-flow]

workflow は manifest でも service settings API / builtin tool でも設定できます。binding には workflow.serviceworkflow.export の metadata が必要です。

Durable Namespace

yaml
resources:
  session-do:
    type: durableObject
    binding: SESSION
    durableObject:
      className: SessionDO
      scriptName: web

workers:
  web:
    build: ...
    bindings:
      durableObjects: [session-do]

Triggers

yaml
workers:
  web:
    build: ...
    triggers:
      schedules:
        - cron: "*/15 * * * *"
          export: scheduled
      queues:
        - queue: jobs
          export: queue

フィールド

fieldrequired説明
buildyes現在は fromWorkflow のみ
containersno紐づける spec.containers
bindingsnoCloudflare-native resource bindings
triggersnoスケジュール / キュートリガー
envnoWorker 固有の環境変数
healthChecknoヘルスチェック設定
scalingnoスケーリング設定
dependsOnno他 workload への依存