スケジュール実行する
このユースケースでできること
Section titled “このユースケースでできること”cron式でCraft Functionsを定期実行し、外部APIからデータを取得して Craft KVS に保存できます。バッチ同期や定期レポートの土台になるパターンです。
- 外部データの定期同期
- APIやDatahubの結果を一定間隔で取得し、KVSやスプレッドシートへ反映する
- 定期レポート・通知の自動化
- 毎日・毎週の集計や分析結果を、SlackやTeamsへ自動送信する
- データの鮮度を保つバッチ処理
- 在庫・ランキング・友だちリストなど、常に最新状態を維持したいデータを定期更新する
ユーザーの操作をきっかけに外部APIを呼び出す場合は 外部 API と連携する を、KARTEの接客をトリガーに処理する場合は KARTE の接客から処理を実行する を参照してください。
サンプルコード
Section titled “サンプルコード”イベント駆動タイプのファンクションとしてデプロイします。API_URL は実際の取得先に書き換えてください。
const API_URL = "https://api.example.com/data";const KVS_KEY = "api-sync:latest";
export default async function (data, { MODULES }) { const { initLogger, kvs } = MODULES; const logger = initLogger({ logLevel: "INFO" });
logger.info("Scheduled execution started", { triggeredAt: new Date().toISOString(), });
const response = await fetch(API_URL); if (!response.ok) { logger.error("API request failed", { status: response.status }); throw new Error(`API request failed: ${response.status}`); }
const body = await response.json();
await kvs.write({ key: KVS_KEY, value: { data: body, syncedAt: new Date().toISOString() }, });
logger.info("Data saved to KVS", { key: KVS_KEY }); return { status: "completed" };}前提と手順の詳細
Section titled “前提と手順の詳細”- ファンクションの作成・デプロイ
- ファンクションを作成、編集、削除する(イベント駆動タイプを選択)
- スケジュールトリガーの設定
- 利用できるトリガー一覧
このユースケースのポイント
Section titled “このユースケースのポイント”- スケジュール実行はイベント駆動タイプでのみ利用できます
- 同じ処理が重複実行されても問題ないよう、べき等に設計してください
- 長時間かかる処理や再試行が必要な場合は RetryableError の利用を検討してください
関連ドキュメント
Section titled “関連ドキュメント”ソリューションブログ
Section titled “ソリューションブログ”- 前日にスケジュール配信が開始/終了した接客サービス情報を Teams に通知する
- KARTE の接客サービスの効果計測指標を Craft Functions でスプレッドシートに定期連携する
- Craft Functions から Instagram Graph API を使って、自社アカウントの投稿データを KARTE のアクションテーブルに連携する
- Craft Functions を使って LINE 公式アカウントの友だち一覧を GCS 経由で Datahub に取り込む
- Datahub クエリの結果を Craft KVS に格納する
- Craft KVS の既存レコードを一括で更新する
- Craft Functions を使って、チャット終了リクエストに対して反応が無いユーザーのチャットを「対応済」にする
- Craft Functions を使って取得した KARTE の接客サービスの効果計測指標を Craft AI Modules で分析し、その分析レポートを Slack に通知する