Cloud Functions の概要

Google Cloud Functions とは

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

Cloud Functions は、Google Cloud Platform で JavaScript、Python 3、Go、または Java ランタイムを使用して記述します。関数を標準的な Node.js(Node.js 10 または 12)、Python 3(Python 3.7 または 3.8)、Go(Go 1.11 または 1.13)、または Java(Java 11)環境で実行すれば、環境に依存することなく簡単にローカルテストを実施できます。

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

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

イベントとトリガー

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

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

サーバーレス

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 を呼び出してそのデータを処理、変換、保存するといった操作を、Cloud Functions を使用すれば、これを完全にサーバーレスな形で実現できます。

次のステップ