Cloud Run functions を比較する

このガイドでは、関数のデプロイに使用する最新の Google Cloud と元の Google Cloud の選択肢を比較します。このページは、以前に Cloud Functions API で関数を作成し、Cloud Run Admin API に移行するユーザーを対象としています。このページでは、コンセプト、構成、デプロイ、トリガーと再試行など、いくつかの領域における主な違いについて説明します。

比較

Cloud Run functions には次の 2 つのバージョンがあります。

  • Cloud Run functions(旧称: Cloud Functions(第 2 世代))は、Cloud Run でサービスとしてデプロイできる関数の最新バージョンです。この関数は、HTTP(S) リクエストに応答したり、Eventarc ベースのトリガー(Pub/Sub など)によって伝播されたイベントに応答したりできます。

  • Cloud Run functions(第 1 世代)(旧称: Cloud Functions(第 1 世代)): イベント トリガーと構成の柔軟性が制限された関数の元のバージョンです。

関数のランタイムをより柔軟に制御できるため、現在のバージョンの Cloud Run functions を使用することをおすすめします。関数を Cloud Run に直接デプロイすると、関数はコンテナとして自動的にビルドされ、Cloud Run サービスとしてデプロイされます。

コンセプト

次の表に、関数の概念的な違いを示します。

Cloud Run 関数 Cloud Run functions(第 1 世代)
旧サービス名 Cloud Functions(第 2 世代) Cloud Functions(第 1 世代)
リソースモデル 関数は、ソースコードからデプロイされる Cloud Run サービスです。 関数がソースコードからデプロイされている
関数の種類の用語
  • HTTP 関数
  • CloudEvents 関数(イベント ドリブン関数)は、すべての言語ランタイムでサポートされています。
  • HTTP 関数
  • CloudEvents をサポートするのは、Ruby、.NET、PHP のランタイムのみです。Node.js、Go、Python、Java の場合は、バックグラウンド関数を使用してイベント ドリブン関数を作成します。
割り当てられた HTTPS URL run.app

Cloud Functions API(v2)で作成された関数にも cloudfunctions.net エンドポイントがあります。
cloudfunctions.net
イメージ レジストリ Artifact Registry のみ Artifact Registry または Container Registry(非推奨)
デプロイの IAM ロール
内部インフラストラクチャ Cloud Run Google 社内
料金モデル Cloud Run の料金 Cloud Run functions(第 1 世代)の料金

構成

Cloud Run は、関数をコンテナにビルドし、サービスとしてデプロイします。関数を Cloud Run にデプロイすると、関数の動作を完全にアクセスして制御できます。たとえば、ダイレクト VPC を有効にしたり、GPU を構成したり、ボリューム マウントを使用したりできます。

次の表に、関数の構成の違いを示します。

Cloud Run 関数 Cloud Run functions(第 1 世代)
リクエストのタイムアウト
  • HTTP でトリガーされる関数の場合は最大 60 分
  • Cloud Functions API(v2)で作成された CloudEvents 関数の場合は最大 9 分
  • 最大 9 分
インスタンスのサイズ 最大 16 GiB の RAM(4 vCPU) 最大 8 GB の RAM(2 vCPU)
同時実行 関数インスタンスあたり最大 1,000 件の同時リクエスト 関数インスタンスごとに 1 件の同時リクエスト
トラフィック分割 サポート対象 非対応

デプロイ

2024 年 8 月以降、Cloud Run を使用して Cloud Functions API(v2)で作成された関数をデプロイして管理できるようになります。この変更により、以下のことが可能になります。

  • ランタイム ID やビルド構成などの関数メタデータは、Cloud Run サービス定義に保存されます。
  • Cloud Run Admin API を使用して関数を安全に編集できます。
  • Cloud Run サービス定義を関数の信頼できる情報源として使用できます。

ただし、Cloud Run Admin API で作成された関数は、Cloud Functions API で変更できません。

次の表に、関数の作成、デプロイ、編集、管理方法の違いを示します。

Cloud Run 関数 Cloud Run functions(第 1 世代)
Google Cloud コンソール Cloud Run Cloud Run functions(第 1 世代)
Cloud SDK
REST API
  • run.googleapis.com(v1 と v2): Cloud Run Admin API または Cloud Functions API で作成された関数。
Terraform

トリガーと再試行

次の表に、関数のトリガーと再試行を比較します。

Cloud Run 関数 Cloud Run functions(第 1 世代)
関数をトリガーして呼び出す Cloud Run Admin API で作成された関数の場合は、 Google Cloud コンソール、または gcloud CLI を使用している場合は関数のデプロイ後に、関数のデプロイの一部としてトリガーを指定します。

Cloud Functions API(v2)で作成された関数の場合、トリガーは関数のデプロイ時に指定します。
トリガーは関数のデプロイ時に指定します。
イベントタイプ Eventarc でサポートされているすべてのイベントタイプをサポート(Cloud Audit Logs を介した 90 以上のイベントソースを含む)。 7 つのソースからのイベントの直接サポート
再試行数 Cloud Run Admin API で作成された関数の場合は、Eventarc で再試行ポリシーを更新し、Pub/Sub でデッドレター トピックを構成します。

Cloud Functions API v2 で作成された関数の場合、--retry フラグを使用して関数のデプロイの一部として再試行を指定します。
再試行は、--retry フラグを使用して関数のデプロイの一部として指定します。

次のステップ