Cloud Functions の概要

Google Cloud Functions とは

Google Cloud Functions は、クラウド サービスの構築と接続に使用するサーバーレスのランタイム環境です。Cloud Functions を使用すると、クラウドのインフラストラクチャやサービスで生じたイベントに関連する、シンプルで一義的な関数を作成できます。対象のイベントが発生すると、Cloud Functions がトリガーされ、コードがフルマネージドの環境で実行されます。インフラストラクチャをプロビジョニングする必要はなく、サーバーの管理に悩まされることもありません。

Cloud Functions の関数は、さまざまなサポート対象のプログラミング言語を使用して作成できます。サポートされているいずれかの標準的なランタイム環境で関数を実行すると、環境に依存することなく簡単にローカルテストを実施できます。

Cloud Functions には、Cloud Functions(第 1 世代)と Cloud Functions(第 2 世代)という 2 種類のプロダクトがあります。第 2 世代は、Cloud RunEventarc をベースにした新しいバージョンで、機能が強化されています。詳細については、Cloud Functions のバージョンの比較をご覧ください。

クラウド サービスの接続と拡張

Cloud Functions の論理リンク層を使用すると、複数のクラウド サービスを接続し、拡張するコードを作ることができます。たとえば、Cloud Storage へのファイルのアップロード、ログの変更、Pub/Sub トピックに対するメッセージの着信をリッスンし、応答することが可能です。Cloud Functions では、独自のプログラミング ロジックによって、既存のクラウド サービスを強化し、より多くのユースケースに対応できます。 Cloud Functions は、Google サービス アカウントの認証情報にアクセスできるため、Cloud Vision などの大半の Google Cloud サービスでシームレスに認証されます。非常に多くの Google Cloud クライアント ライブラリでサポートされているため、他のツールとの統合も簡単に行うことができます。

イベントとトリガー

クラウド イベントとは、クラウド環境で発生する変化を指します。たとえば、データベース内のデータへの変更、ストレージ システムへのデータファイルの追加、新規作成された仮想マシンのインスタンスなどです。

ユーザーがこれらに応答するか否かにかかわらずイベントは発生します。イベントへのレスポンスは、トリガーを作成して行うこともできます。トリガーは、特定のイベントや一連のイベントに関心があることを示すものにもなります。関数をトリガーにバインドすると、イベントをキャプチャして処理できます。トリガーを作成して関数に関連付ける方法については、Cloud Functions のトリガーをご覧ください。

サーバーレス

Cloud Functions では、サーバーの管理やソフトウェアの構成、フレームワークの更新、オペレーティング システムへのパッチ適用などを行う必要がありません。ソフトウェアとインフラストラクチャは完全に Google で管理されるため、コードの作成に集中できます。 また、イベントにレスポンスしてリソースが自動的にプロビジョニングされます。特別な操作を行うことなく、1 日に何度でも関数を呼び出すことができます。

ユースケース

軽量の ETL のような非同期ワークロードのほか、アプリケーション ビルドのトリガーなどのクラウド上での自動処理に適しています。独自のサーバーも手動で管理を行うデベロッパーも必要ありません。イベントにバインドされた関数をデプロイするだけで作業が完了します。

Cloud Functions では、きめ細かい処理をオンデマンドで実行できるため、軽量の API や webhook に最適です。また、HTTP 関数のデプロイ時に HTTP のエンドポイントが自動的にプロビジョニングされるため、他のサービスのように、複雑な構成を行う必要はありません。その他の Cloud Functions の使用例は、下の表でご確認いただけます。

使用例 説明
データ処理 / ETL ファイルの作成、変更、削除などの Cloud Storage イベントをリッスンし、イベントに応答します。画像処理、動画のコード変換、データの検証と変換、インターネット上の任意のサービスの呼び出しといった操作を、Cloud Functions の関数を使って実行できます。
Webhook 単純な HTTP トリガーによって、GitHub、Slack、Stripe などのサードパーティ システムをはじめ、HTTP/S リクエストを送信できるあらゆる場所から送られたイベントに応答できます。
軽量 API 軽量、疎結合された、細かな複数のロジックを組み合わせることで、ビルドや拡張を迅速に実行できます。関数は、イベント ドリブンにすることも、HTTP/S で直接呼び出すこともできます。
モバイル バックエンド アプリ デベロッパー向けに Google が提供しているモバイル プラットフォームの Firebase を使用すれば、Cloud Functions でモバイル バックエンドを記述できます。これにより、Firebase アナリティクス、Firebase Realtime Database、Firebase Authentication、Firebase Storage からのイベントをリッスンし、イベントに応答できるようになります。
IoT デバイスの膨大なストリーミング データを Pub/Sub に取り込み、Cloud Functions を呼び出してそのデータを処理、変換、保存するといった操作を完全にサーバーレスな形で実現できます。

次のステップ