NorthNest
モバイル開発

FlutterFlowでGCP Cloud Schedulerを使って定期処理を実行する方法

📅 2025年3月4日
✍️ 王 家豪
#FlutterFlow
#GCP
#Cloud Scheduler
#Cloud Functions
#Firebase

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プロジェクトの設定

プロジェクト作成・選択

  1. GCPコンソール にログイン
  2. プロジェクトを選択、または新規作成

APIの有効化

以下のAPIを有効化します。

  • Cloud Scheduler API
  • Cloud Functions API
  • Cloud Pub/Sub API(内部利用)

2. Cloud Schedulerの設定

ジョブ作成

  1. GCPコンソールから Cloud Scheduler を開く
  2. 「ジョブを作成」 をクリック

ジョブ詳細設定

  • 名前: '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 は、 ノーコードアプリに「時間軸の自動化」を与える最適解です。


AI活用についてご相談ください

貴社のビジネス課題に最適なAIソリューションをご提案いたします