Cloud Run functions の概要
Cloud Run functions とは
Cloud Run functions は、クラウド サービスの構築と接続に使用できるサーバーレスの実行環境です。Cloud Run functions を使用すると、クラウドのインフラストラクチャやサービスで生じたイベントに関連付けられた、単一目的の関数を作成できます。対象のイベントが発生すると、関数がトリガーされます。コードは Cloud Run のフルマネージド環境で実行されます。インフラストラクチャをプロビジョニングする必要はなく、サーバーの管理に悩まされることもありません。
Cloud Run functions は、さまざまなサポート対象のプログラミング言語を使用して作成できます。サポートされているいずれかの標準的なランタイム環境で関数を実行すると、環境に依存することなく簡単にローカルテストを実施できます。
クラウド サービスの接続と拡張
Cloud Run 関数はロジックの接続層を提供するため、複数のクラウド サービスを接続、拡張するコードを記述できます。たとえば、Cloud Storage へのファイルのアップロード、ログの変更、Pub/Sub トピックに対するメッセージの着信をリッスンし、応答することが可能です。Cloud Run functions を使用することで既存のクラウド サービスを強化し、多様なプログラミング ロジックを使用する、より多くのユースケースに対応できます。Cloud Run functions はサービス アカウントの認証情報にアクセスできるため、Cloud Vision などの大半の Google Cloud サービスでシームレスに認証されます。非常に多くの Google Cloud クライアント ライブラリでサポートされているため、他のツールとの統合も簡単に行うことができます。
イベントとトリガー
クラウド イベントとは、クラウド環境で発生する変化を指します。たとえば、データベース内のデータへの変更、ストレージ システムへのデータファイルの追加、新規作成された仮想マシンのインスタンスなどです。
ユーザーがこれらに応答するか否かにかかわらずイベントは発生します。イベントへのレスポンスは、トリガーを作成して行うこともできます。トリガーは、特定のイベントや一連のイベントに関心があることを示すものにもなります。関数をトリガーにバインドすると、イベントをキャプチャしてなんらかの対応をとることができます。トリガーを作成して関数に関連付ける方法については、Cloud Run 関数のトリガーをご覧ください。
サーバーレス
Cloud Run functions では、サーバーの管理やソフトウェアの構成、フレームワークの更新、オペレーティング システムへのパッチ適用などを行う必要がありません。ソフトウェアとインフラストラクチャは完全に Cloud Run で管理されるため、コードそのものに集中できます。また、イベントにレスポンスしてリソースが自動的にプロビジョニングされます。特別な操作を行うことなく、1 日に何度でも関数を呼び出すことができます。
構成可能
関数はコンテナに組み込まれ、Cloud Run にサービスとしてデプロイされます。これにより、関数の動作を完全に制御できます。次のようなサービス構成のオプションについては、Cloud Run のドキュメントをご覧ください。
- 関数のマルチイベント トリガーの管理
- 高パフォーマンスのダイレクト VPC 下り(外向き)
- Cloud Storage ボリュームをマウントする機能
- Google 管理の言語ランタイム(ベースイメージのセキュリティの自動更新を含む)
- トラフィック分割とリビジョン管理
- サイドカー コンテナを含むマネージド Prometheus と Open Telemetry のサポート
ユースケース
軽量の ETL のような非同期ワークロードのほか、アプリケーション ビルドのトリガーなどのクラウド上での自動処理に適しています。独自のサーバーも手動で管理を行うデベロッパーも必要ありません。イベントにバインドされた関数をデプロイすると作業が完了します。
Cloud Run functions ではきめ細かい処理をオンデマンドで実行できるため、軽量の API や Webhook にも最適です。また、HTTP 関数のデプロイ時に HTTP のエンドポイントが自動的にプロビジョニングされるため、他のサービスのように、複雑な構成を行う必要はありません。下の表では、Cloud Run functions のその他の一般的なユースケースをご確認いただけます。
ユースケース | 説明 |
---|---|
データ処理 / ETL | ファイルの作成、変更、削除などの Cloud Storage イベントをリッスンし、イベントに応答します。画像処理、動画のコード変換、データの検証と変換、インターネット上の任意のサービスの呼び出しといった操作を、Cloud Run functions を使って実行できます。 |
Webhook | HTTP トリガーを使用して、GitHub、Slack、Stripe などのサードパーティ製システムをはじめ、HTTP リクエストを送信できるあらゆる場所で発生したイベントに応答できます。 |
軽量 API | 軽量、疎結合された、細かな複数のロジックを組み合わせることで、ビルドや拡張を迅速に実行できます。関数は、イベント ドリブンにすることも、HTTP/S で直接呼び出すこともできます。 |
モバイル バックエンド | アプリ デベロッパー向けに Google が提供しているモバイル プラットフォームの Firebase を使用すれば、Cloud Run 関数でモバイル バックエンドを記述できます。これにより、Firebase アナリティクス、Firebase Realtime Database、Firebase Authentication、Firebase Storage からのイベントをリッスンし、イベントに応答できるようになります。 |
IoT | 膨大な数のデバイスからのストリーミング データを Pub/Sub に取り込み、Cloud Run functions を呼び出してそのデータを処理、変換、保存するといった操作を完全にサーバーレスな形で実現できます。 |