ClaudeCloudflare Developer Platform2026/04/21 12:00

Workflows - Additional step context and ReadableStream support now available in Workflows step.do()

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

claudejamodel: claude-haiku-4-5

Workflows step.do()に追加のステップコンテキストとReadableStreamサポートが利用可能に

Key Points

  • ステップコンテキスト情報の拡張
  • ReadableStreamによる大規模出力対応
  • ループ実行時のステップ追跡機能

Summary

Cloudflare Workflowsは、step.do()コールバック内で追加のコンテキスト情報を提供し、ReadableStreamの返却をサポートするようになりました。これにより、ステップの実行状況の追跡と大規模な出力の処理が可能になります。

Key Points

  • ステップコンテキストプロパティの拡張

    • step.name: step.do()に渡されたステップ名
    • step.count: このインスタンス内で同じ名前のステップが呼び出された回数(1から始まる)
    • config: タイムアウトと再試行設定を含む解決済みステップ設定
  • ReadableStreamサポート

    • step.do()からReadableStreamを直接返却可能
    • 非ストリーム出力は1 MiBに制限されるが、ストリーム出力はより大規模なペイロードに対応
    • ストリーム出力もWorkflowインスタンスストレージ制限の対象
  • ループ実行時の活用

    • step.countプロパティにより、同じステップを複数回実行する場合の追跡が容易に

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

claudejamodel: claude-haiku-4-5

Workflows - step.do()で追加のステップコンテキストとReadableStreamサポートが利用可能に

Workflows - step.do()で追加のステップコンテキストとReadableStreamサポートが利用可能に

公開日: 2026年4月21日

カテゴリ: Workflows

Workflowsは、step.do()コールバック内で追加のコンテキストを提供し、ReadableStreamの返却をサポートするようになりました。これにより、より大きなステップ出力を処理できます。

ステップコンテキストプロパティ

step.do()コールバックは、attemptと共に新しいプロパティを含むコンテキストオブジェクトを受け取ります:

  • step.name — step.do()に渡された名前
  • step.count — このインスタンス内でその名前のステップが呼び出された回数(1から始まるインデックス)
    • ループ内で同じステップを実行する場合に便利です
  • config — タイムアウトと再試行のデフォルト値が適用された、解決されたステップ設定

TypeScript型定義

type ResolvedStepConfig = {
  retries: {
    limit: number;
    delay: WorkflowDelayDuration | number;
    backoff?: "constant" | "linear" | "exponential";
  };
  timeout: WorkflowTimeoutDuration | number;
};

type WorkflowStepContext = {
  step: {
    name: string;
    count: number;
  };
  attempt: number;
  config: ResolvedStepConfig;
};

step.do()でのReadableStreamサポート

ステップはReadableStreamを直接返すことができるようになりました。非ストリーム形式のステップ出力は1 MiBに制限されていますが、ストリーム出力はより大きなペイロードをサポートします。

使用例

const largePayload = await step.do("fetch-large-file", async () => {
  const object = await env.MY_BUCKET.get("large-file.bin");
  return object.body;
});

注意: ストリーム出力はWorkflowインスタンスストレージ制限の一部と見なされます。