Cloud Functions for Firebase
Google Cloud で Cloud Functions をすでにご利用の場合は、Firebase がどのように適合するかについてご確認ください。
主な機能
Firebase プラットフォームを統合 | 関数を作成することで、Firebase Authentication トリガー、Cloud Storage トリガーなど、さまざまな Firebase や Google Cloud 機能によって生成されたイベントに応答できます。 Admin SDK を Cloud Functions とともに使用して、Firebase のさまざまな機能を統合できます。また、独自の Webhook を作成して、サードパーティのサービスと統合することもできます。Cloud Functions はボイラープレート コードを最小限に抑え、関数内で Firebase と Google Cloud を使いやすくします。 |
メンテナンス不要 | コマンドラインから 1 つのコマンドで、JavaScript または TypeScript コードをサーバーにデプロイします。その後は Firebase によって、ユーザーの使用パターンに合わせてコンピューティング リソースが自動的にスケールアップされます。認証情報、サーバー構成、新規サーバーのプロビジョニング、古いサーバーのデコミッションを気にする必要はありません。 |
ロジックの機密性と安全性を維持 | 多くの場合、デベロッパーはクライアント側での改ざんを防ぐために、サーバー上でアプリケーション ロジックを制御することを好みます。また、そのコードをリバース エンジニアリングできるようにすることは望ましくない場合もあります。Cloud Functions はクライアントから完全に隔離されているため、非公開であり、常に必要とするとおりに動作します。 |
仕組み
関数を記述してデプロイすると、Google のサーバーはすぐに関数の管理を開始します。関数は、HTTP リクエストで直接呼び出すことができます。また、バックグラウンド関数の場合は、Google のサーバーがイベントをリッスンして、関数がトリガーされたときに実行します。
負荷が増減すると、Google は関数の実行に必要な仮想サーバー インスタンスの数を迅速にスケーリングすることで対応します。各関数は、独自の構成が含まれる独自の環境で独立して実行されます。
バックグラウンド関数のライフサイクル
- 新しい関数のコードを記述し、イベント プロバイダ(Cloud Firestore など)を選択し、関数の実行条件を定義します。
- 関数がデプロイされた時点:
- Firebase CLI によって関数コードの
.zip
アーカイブが作成され、Cloud Functions が Artifact Registry リポジトリ(gcf-artifacts
という接頭辞付き)をプロジェクト内に作る前に、Cloud Storage バケット(gcf-sources
という接頭辞付き)にアップロードされます。 - Cloud Build が関数コードを取得して、関数ソースをビルドします。Cloud Build のログは Google Cloud Console で確認できます。
- ビルドされた関数コードのコンテナ イメージ(
gcf-artifacts
)がプロジェクト内の非公開の Artifact Registry リポジトリにアップロードされ、新しい関数が展開されます。
- Firebase CLI によって関数コードの
- イベント プロバイダによって関数の条件に一致するイベントが生成されると、コードが呼び出されます。
- 関数が多くのイベントの処理でビジー状態の場合、Google はより多くのインスタンスを作成して作業を迅速に処理します。関数がアイドル状態の場合、インスタンスはクリーンアップされます。
- 更新されたコードをデプロイすることで関数を更新すると、Artifact Registry のビルド アーティファクトとともに古いバージョンのインスタンスがクリーンアップされ、新しいインスタンスに置き換えられます。
- 関数を削除すると、すべてのインスタンスと zip アーカイブが、Artifact Registry の関連するビルド アーティファクトとともにクリーンアップされます。関数とイベント プロバイダ間の接続は削除されます。
バックグラウンド関数を使用するイベントをリッスンするだけでなく、HTTP リクエストまたはクライアントからの呼び出しで関数を直接呼び出すこともできます。
実装パス
Cloud Functions の設定 | Firebase CLI をインストールし、Firebase プロジェクトで Cloud Functions を初期化します。 | |
関数の記述 | Firebase サービス、Google Cloud サービス、または他のイベント プロバイダからのイベントを処理するための JavaScript コード(デプロイでトランスパイルする場合には TypeScript コード)を記述します。 | |
関数のテスト | 関数をテストするにはローカル エミュレータを使用します。 | |
デプロイとモニタリング | プロジェクトに対する課金を有効にし、Firebase CLI を使用して関数をデプロイします。 Google Cloud コンソールを使用して、ログの表示や検索を行うことができます。 |
次のステップ
- 関数の設定、作成、デプロイを開始する
- 関数でできることについて詳細を確認する
- Cloud Functions Codelab を試す