Cloud Functions ベータ版

クラウド サービスを構築して接続するためのサーバーレス環境

無料トライアルに登録 ドキュメントを読む

Google のインフラストラクチャに基づくサーバーレス アプリケーション

クラウド コンピューティングにより、完全にサーバーレス(サーバー不要)なコンピューティング モデルが可能になりました。このモデルでは、どこでイベントが発生しても、それに応答してオンデマンドでロジックを起動できます。バイトサイズのビジネス ロジックからアプリケーションを構築すると、コードが実行される時間に対してのみ、最も近い 100 ミリ秒単位で課金されます。インフラストラクチャを一切管理することなく、ゼロから地球規模に至るまでユーザーにサービスを提供できます。

モノリシックによるマイクロサービス

1 つの操作に優れた、互いに独立した小さな機能単位を組み合わせてシステムを構築することで、デベロッパーは機敏に作業できます。Cloud Functions では、アプリケーション/コンテナ/VM 単位ではなく、個別の機能を単位としてサービスをビルドおよびデプロイできます。

複数のクラウド サービスを関連付けて拡張

Cloud Functions に備わっているロジック接続層を使用すると、複数のクラウド サービスを接続して拡張するためのコードを作成できます。 リッスンして応答できるイベントには、Cloud Storage へのファイルのアップロード、Cloud Pub/Sub トピックに対するメッセージの着信、Stackdriver Logging でのログの更新、Firebase からのモバイル関連のイベントなどがあります。Cloud Functions は、このようなイベント駆動型コードで既存のクラウド サービスを強化し、ますます多くのユース ケースに対応できるようになります。

サーバーレスなエコシステム

Cloud Function は短時間実行型です。環境内のイベントに応答してオンデマンドで起動し、処理が完了すると実行を停止します。使用量は関数(機能単位)が実行されている間だけ計測され、最も近い 100 ミリ秒単位に丸められて課金されます。関数の実行後には料金が発生しません。

モバイル対応

モバイルアプリのデベロッパーは、Google Cloud のモバイル プラットフォーム Firebase から直接、Cloud Functions を使用できます。 Cloud Functions では、Firebase Analytics、Firebase Realtime Database、Firebase Authentication、Firebase Storage からのイベントを含め、Firebase がネイティブに発信するイベントに応答することができます。

単にコードを追加するだけ

Google があなたに代わってサーバー、オペレーティング システム、ランタイム環境を管理する、完全に管理されたサーバーレス環境でコードを実行できます。それぞれの Cloud 関数は、互いに切り離された独自の安全な実行コンテキストで実行され、自動的にスケーリングされます。そのライフサイクルは他の関数に依存しません。

オープンで使いやすい

Cloud Functions の関数は JavaScript で作成され、標準的な Node.js ランタイム環境で実行されます。オペレーティング システムに至るまで、Google 独自の仕様をまったく前提としていません。つまり、そのままで関数が機能します。独自のネイティブ ライブラリをプラットフォームに構築することさえできます。Node.js Foundation、Google スタッフ、そしてコミュニティの協力によって実現された、非常に優れたオープンなデベロッパー エクスペリエンスをオープンソース V8 エンジンを通してご利用いただけます。

Cloud Functions の使用事例

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

「Meetup 社でのデベロッパーの生産性を高めるために、タスク管理を Slack に統合したいと考えていました。Google Cloud Functions を利用すると、新しい HTTP 関数をパブリッシュするのと同じくらい簡単にこの統合を実現できました。 現在ではこのツールが組織全体に展開されているので、サーバーや VM を扱うことはまったくありません。」

— Jose Rodriguez 氏 Meetup 社、Lead of Engineering Effectiveness

Cloud Functions の特長

Cloud Pub/Sub トリガー
Cloud Pub/Sub トピックのメッセージによって Cloud Functions をトリガーできます。複数の関数を同じトピックにサブスクライブできます。
Cloud Storage トリガー
Cloud Function を Cloud Storage バケットの mutation イベントに関連付けることができます。バケット内でファイルが作成、削除、変更されるたびに、関数が実行されます。
Firebase トリガー
モバイル デベロッパーは、Firebase と Cloud Functions との優れた統合を実感するはずです。Firebase で公開されるイベントについては、こちらをご覧ください。
HTTPS からの呼び出し
HTTP トリガーでデプロイされた関数には、完全修飾ドメインとともに、安全な通信のために動的に生成された TLS 証明書が提供されます。
GitHub/Bitbucket
Cloud ソース レポジトリを使用すると、コードをアップロードしたりバージョンを管理したりすることなく、GitHub や Bitbucket レポジトリから Cloud Functions を直接デプロイすることができます。
ロギング、モニタリング、デバッグ
Cloud Functions から発行されたログは自動的に Stackdriver Logging に書き込まれ、パフォーマンス テレメトリーが Stackdriver Monitoring に記録されます。 さらに Stackdriver Debugger で、本番環境でのコードの動作を調査できます。
依存関係の自動解決
デプロイするために関数とその依存関係をまとめてパッケージ化する必要はありません。ソースコードとマニフェストを送信するだけで、残りの処理はすべて Google が引き受けます。

Cloud Functions の料金

Google Cloud Functions の料金は、呼び出し、コンピューティング時間、送信データに対して発生します。受信データ、および同じリージョン内の他の Google API に送信されるデータは無料です。詳しい料金情報については、料金ガイドをご覧ください。

  1 か月あたりの 無料利用枠 無料利用枠を超えた場合の 料金(単価) 課金の単位
呼び出し* 200 万回 $0.40 呼び出し 100 万回あたり
コンピューティング時間 400,000 GB 秒 $0.0000025 GB 秒単位
200,000 GHz 秒 $0.0000100 GHz 秒単位
送信データ(下り) 5GB $0.12 GB 単位
受信データ(上り) 無制限 無料 GB 単位
同じリージョン内の Google API への送信データ 無制限 無料 GB 単位

*バックグラウンド関数および HTTP 関数を含む