FlutterFlowでGCP Schedulerを使用する手順
FlutterFlowとGoogle Cloud Platform(GCP)のCloud Schedulerを連携させる手順をまとめました。
前提条件
- FlutterFlowアカウント
- GCPアカウント
- Firebase Projectの設定完了
手順
1. GCPプロジェクトの設定
- GCPコンソールにログイン
- プロジェクトを選択または新規作成
- APIとサービスを有効化:
- Cloud Scheduler API
- Cloud Functions API
- Cloud Pub/Sub API
2. Cloud Schedulerの設定
-
GCPコンソールから「Cloud Scheduler」にアクセス
-
「ジョブを作成」をクリック
-
ジョブの詳細を入力:
- 名前: わかりやすい名前(例:
flutterflow-daily-task
) - 説明: ジョブの目的
- 頻度: cronスケジュール形式で入力(例:
0 8 * * *
- 毎日午前8時) - タイムゾーン: 適切なタイムゾーンを選択
- 名前: わかりやすい名前(例:
-
ターゲットの設定:
- ターゲットタイプ:
HTTP
- URL: FlutterFlowのAPIエンドポイントまたはCloud Functionのエンドポイント
- HTTPメソッド:
POST
または必要なメソッド - ヘッダー: 必要に応じて認証ヘッダーを追加
- 本文: 必要なパラメータをJSON形式で記述
- ターゲットタイプ:
-
「作成」をクリック
3. FlutterFlowでのAPIエンドポイント作成
-
FlutterFlowプロジェクトを開く
-
「Backend」→「API Endpoints」を選択
-
「+ Create New Endpoint」をクリック
-
エンドポイントの設定:
- Method:
POST
または必要なメソッド - Path:
/schedule-task
などわかりやすいパス - Auth Required: セキュリティ要件に応じて設定
- Description: エンドポイントの目的
- Method:
-
アクションの設定:
- カスタムコードで処理する場合は「Code」セクションで実装
- または必要なデータベース操作やその他のアクションを設定
-
「Save」をクリック
4. Cloud Functionを使用する場合(代替方法)
-
GCPコンソールから「Cloud Functions」にアクセス
-
「関数を作成」をクリック
-
関数の設定:
- 名前: わかりやすい名前
- トリガータイプ:
HTTP
- 認証: セキュリティ要件に応じて設定
-
ランタイム環境の設定:
- ランタイム: Node.js、Python など
- エントリポイント: 関数名
注意(重要):onRequest使うので、右側の設定を一切せずにdeployしてください。
-
コードを記述:
exports.scheduledFunction = functions.region('asia-northeast1') .https.onRequest(async (req, res) => { // FlutterFlowのAPIエンドポイントを呼び出すコード fetch('https://your-flutterflow-api-endpoint.com', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_TOKEN' }, body: JSON.stringify({ /* パラメータ */ }) }) .then(response => response.json()) .then(data => { 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. セキュリティの設定
- APIキーまたはJWTトークンによる認証を実装
- IAMロールを適切に設定し、最小権限の原則に従う
- Cloud Scheduler→Cloud Function→FlutterFlowの通信を暗号化
6. テストと監視
- Cloud Schedulerジョブを手動で実行してテスト
- Cloud Loggingでログを確認
- 必要に応じてモニタリングとアラートを設定
トラブルシューティング
-
ジョブが実行されない場合:
- cronスケジュールの形式を確認
- タイムゾーンの設定を確認
- IAM権限を確認
-
APIエンドポイントにアクセスできない場合:
- URLが正しいか確認
- 認証情報を確認
- ネットワーク設定を確認