Cloudflare Workers 上で、耐久性のある多段階アプリケーションを Workflows で構築します。
Workflows を使うと、複数のステップをつなぐアプリケーションを構築できます。失敗したタスクは自動再試行し、状態は分、時間、あるいは週単位でも保持されます。管理するインフラストラクチャはありません。
Workflows は、信頼性の高い AI アプリケーション、データパイプラインの処理、自動メールとトライアル期限によるユーザーライフサイクル管理、人間の承認を含むシステムに使えます。
Workflows が提供するもの:
- タイムアウトのない耐久性のある多段階実行
- 外部イベントや承認を待つ機能
- 自動再試行とエラー処理
- 組み込みのオブザーバビリティとデバッグ
R2 から取得し、AI の説明を生成し、承認を待ってから公開する画像処理ワークフローです。
export class ImageProcessingWorkflow extends WorkflowEntrypoint {
async run(event: WorkflowEvent, step: WorkflowStep) {
const imageData = await step.do('fetch image', async () => {
const object = await this.env.BUCKET.get(event.payload.imageKey);
return await object.arrayBuffer();
});
const description = await step.do('generate description', async () => {
const imageArray = Array.from(new Uint8Array(imageData));
return await this.env.AI.run('@cf/llava-hf/llava-1.5-7b-hf', {
image: imageArray,
prompt: 'Describe this image in one sentence',
max_tokens: 50,
});
});
await step.waitForEvent('await approval', {
event: 'approved',
timeout: '24 hours',
});
await step.do('publish', async () => {
await this.env.BUCKET.put(`public/${event.payload.imageKey}`, imageData);
});
}
}はじめる
例を見る
複雑な処理を耐久性のあるステップに分け、自動再試行とエラー処理を付けます。
step.sleep() と step.sleepUntil() で、ワークフローを秒、時間、日単位で一時停止します。
実行を続ける前に、Webhook、ユーザー入力、または外部システムの応答を待ちます。
プログラムまたは API で、ワークフローインスタンスのトリガー、一時停止、再開、終了を行います。
サーバーレスアプリケーションを構築し、優れたパフォーマンス、信頼性、スケールのために世界中へすぐにデプロイします。
動的なフロントエンドアプリケーションを短時間でデプロイします。
料金
Workflows の料金の仕組みを確認します。
制限
Workflow の制限と、その中での使い方を確認します。
ストレージオプション
Workers で構築できるストレージとデータベースのオプションを確認します。
Developer Discord
Workers コミュニティの Discord で質問し、作っているものを見せ、ほかの開発者とプラットフォームについて話し合います。
@CloudflareDev
@CloudflareDev を Twitter でフォローし、製品発表と Cloudflare Developer Platform の新着を確認します。