Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Firebase Cloud Functions

Cloud Functions for Firebase はサーバーレス フレームワークで、Firebase の機能と HTTPS リクエストによってトリガーされたイベントに応じて、バックエンド コードを自動的に実行できます。JavaScript または TypeScript コードは Google のクラウドに保存され、マネージド環境で実行されます。独自のサーバーを管理およびスケーリングする必要はありません。

Google Cloud Platform で 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 はファンクションの実行に必要な仮想サーバー インスタンスの数を迅速にスケーリングすることで対応します。各ファンクションは、独自の構成が含まれる独自の環境で独立して実行されます。

バックグラウンド関数のライフサイクル

  1. 新しい関数のコードを記述し、イベント プロバイダ(Cloud Firestore など)を選択し、関数の実行条件を定義します。
  2. 関数がデプロイされた時点:
    1. Firebase CLI によって関数コードの .zip アーカイブが作成され、Firebase プロジェクト内の Storage バケット(「gcf-sources」という接頭辞が付いています)にアップロードされます。
    2. Cloud Build が関数コードを取得して、関数ソースをビルドします。Cloud Build のログは Google Cloud Console で確認できます。
    3. ビルドされた関数コードのコンテナ イメージ("gcf")がプロジェクト内の非公開の Container Registry リポジトリにアップロードされ、新しい関数が展開されます。
  3. イベント プロバイダによって関数の条件に一致するイベントが生成されると、コードが呼び出されます。
  4. 関数が多くのイベントの処理でビジー状態の場合、Google はより多くのインスタンスを作成して作業を迅速に処理します。関数がアイドル状態の場合、インスタンスはクリーンアップされます。
  5. 更新されたコードをデプロイすることで関数を更新すると、Storage と Container Registry のビルド アーティファクトとともに古いバージョンのインスタンスがクリーンアップされ、新しいインスタンスに置き換えられます。
  6. 関数を削除すると、すべてのインスタンスと zip アーカイブが、Storage と Container Registry の関連するビルド アーティファクトとともにクリーンアップされます。関数とイベント プロバイダ間の接続は削除されます。

バックグラウンド ファンクションを使用するイベントをリッスンするだけでなく、HTTP リクエストまたはクライアントからの呼び出しでファンクションを直接呼び出すことができます。

実装パス

Cloud Functions の設定 Firebase CLI をインストールし、Firebase プロジェクトで Cloud Functions を初期化します。
ファンクションの記述 Firebase サービス、Google Cloud サービス、または他のイベント プロバイダからのイベントを処理するための JavaScript コード(デプロイでトランスパイルする場合には TypeScript コード)を記述します。
関数のテスト 関数をテストするにはローカル エミュレータを使用します。
デプロイとモニタリング プロジェクトに対する課金を有効にし、Firebase CLI を使用して関数をデプロイします。Firebase コンソールを使用して、ログを表示および検索できます。

次のステップ