FlutterFlowでGCP Cloud Schedulerを使って定期処理を実行する方法
FlutterFlowでGCP Cloud Schedulerを使用する手順
本記事では、FlutterFlowとGoogle Cloud Platform(GCP)のCloud Schedulerを連携し、
定期的にAPIや処理を実行する方法を解説します。
FlutterFlow単体ではcronのような定期実行ができないため、
Cloud Scheduler + Cloud Functions を組み合わせる構成が実運用では最も安全かつ柔軟です。
前提条件
- FlutterFlowアカウント
- GCPアカウント
- Firebase Projectの設定完了
全体構成
Cloud Scheduler
↓ (HTTP)
Cloud Functions(onRequest)
↓
FlutterFlow API Endpoint
↓
Firestore / 外部API
手順
1. GCPプロジェクトの設定
プロジェクト作成・選択
- GCPコンソール にログイン
- プロジェクトを選択、または新規作成
APIの有効化
以下のAPIを有効化します。
- Cloud Scheduler API
- Cloud Functions API
- Cloud Pub/Sub API(内部利用)
2. Cloud Schedulerの設定
ジョブ作成
- GCPコンソールから Cloud Scheduler を開く
- 「ジョブを作成」 をクリック
ジョブ詳細設定
- 名前: 'flutterflow-daily-task'
- 説明: FlutterFlow定期実行タスク
- 頻度: cron形式
例:毎日8時
0 8 * * *
- タイムゾーン: 'Asia/Tokyo'
ターゲット設定
- ターゲットタイプ: HTTP
- URL: Cloud Function または FlutterFlow API Endpoint
- HTTPメソッド: POST
- ヘッダー:
Content-Type: application/json Authorization: Bearer YOUR_TOKEN
- 本文(JSON):
{
"task": "daily_batch"
}
設定後、「作成」をクリックします。
3. FlutterFlowでのAPIエンドポイント作成
エンドポイント作成手順
1. FlutterFlowプロジェクトを開く
2. Backend → API Endpoints
3. + Create New Endpoint
エンドポイント設定
• Method: POST
• Path: /schedule-task
• Auth Required: 有効
• Description: Scheduler用定期タスク
処理内容
• カスタムコードでバッチ処理
• Firestore更新
• 外部API呼び出し など
4. Cloud Functionsを使用する方法(推奨構成)
FlutterFlowのAPIを直接Schedulerから叩くより、 Cloud Functionsを中継する方がセキュアで拡張性が高いです。
関数作成手順
1. GCPコンソール → Cloud Functions
2. 関数を作成
3. 設定:
• トリガー: HTTP
• 認証: 未認証(※トークン検証はコード側で実施)
⚠️ 重要
onRequest を使用するため、
右側のイベント設定は一切せずにデプロイしてください。
Cloud Functionコード例(Node.js)
const functions = require('firebase-functions');
const fetch = require('node-fetch');
exports.scheduledFunction = functions
.region('asia-northeast1')
.https.onRequest(async (req, res) => {
try {
const response = await fetch(
'https://your-flutterflow-api-endpoint.com/schedule-task',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN',
},
body: JSON.stringify({
task: 'daily_batch',
}),
}
);
const data = await response.json();
console.log('Success:', data);
res.status(200).send('Task executed successfully');
} catch (error) {
console.error('Error:', error);
res.status(500).send('Error executing task');
}
});
5. セキュリティ設定(重要)
対策
• FlutterFlow APIは 必ず認証必須
• Scheduler → Function 間は Bearer Token or JWT
• IAMは 最小権限の原則
• HTTPS通信のみ使用
IAM例(Scheduler)
• Cloud Functions Invoker のみ許可
6. テストと監視
テスト
1. Cloud Schedulerジョブを手動実行
2. Cloud Functionsのログを確認
3. FlutterFlow側の処理結果を確認
監視
• Cloud Loggingで実行履歴確認
• エラー率に応じてアラート設定
トラブルシューティング
ジョブが実行されない
• cron形式が正しいか
• タイムゾーンが合っているか
• SchedulerのIAM権限
APIにアクセスできない
• URL誤り
• 認証トークン不正
• Cloud Functionのリージョン違い
まとめ
Cloud Schedulerを使うことで、FlutterFlowでも以下が可能になります。
• 定期バッチ処理
• 毎日・毎週の自動実行
• バックエンド連携の自動化
FlutterFlow × GCP Cloud Scheduler × Cloud Functions は、 ノーコードアプリに「時間軸の自動化」を与える最適解です。