Cloud Run サービス、ジョブ、ワーカープールをデプロイする

このドキュメントでは、Cloud Run サービス、Cloud Run ジョブ、Cloud Run ワーカー プールなどのアプリケーションをデプロイする方法について説明します。

Cloud Deploy を使用すると、コンテナベースのワークロードを任意の Cloud Run サービスジョブ、またはワーカープールにデプロイできます。Cloud Run サービスまたはワーカープールの Cloud Run ターゲットにデプロイする場合、Cloud Deploy のすべての機能はサポートされますが、Cloud Run ジョブのカナリア デプロイはサポートされません。

このドキュメントでは、Cloud Run にデプロイするために完了する必要がある 3 つの主要な構成について説明します。

制限事項

  • ターゲットごとにデプロイできる Cloud Run サービス、ジョブ、ワーカープールは 1 つだけです。

  • Cloud Run ジョブに対してカナリア デプロイを実行することはできません。

    ただし、Cloud Run サービスとワーカープールではカナリア デプロイを使用できます。

  • Cloud Deploy を使用して Cloud Run 関数をデプロイするには、関数をコンテナにビルドして Cloud Run サービスとしてデプロイするように CI ワークフローを変更する必要があります。

始める前に

ターゲット構成を作成する

ターゲットは、デリバリー パイプライン YAML で構成することも、別のファイルで構成することもできます。また、同じファイルで複数のターゲットを構成することもできます。

ターゲットは、デリバリー パイプラインと同じプロジェクトとリージョンで定義する必要があります。ただし、ターゲットのデプロイ先となるサービス、ジョブ、ワーカー プールは、サービス アカウントがこれらのプロジェクトにアクセスできる限り、異なるプロジェクトとリージョンに存在できます。

ターゲット定義で、Cloud Run サービスが作成される場所を特定する run スタンザを作成します。

ターゲット定義で Cloud Run サービス、ジョブ、ワーカープールを指定する構文は次のとおりです。

run:
 location: projects/[project_name]/locations/[region_name]

このリソース ID には次の要素が使用されます。

  • project_name は、Cloud Run サービス、ジョブ、ワーカープールが作成される Google Cloud プロジェクトの名前です。

    ターゲットごとにこれを行います。Cloud Run のサービス、ジョブ、ワーカープールごとに異なるプロジェクトを指定することをおすすめします。同じプロジェクトに複数のサービス、ジョブ、ワーカープールが必要な場合は、skaffold.yaml 構成ファイルで Skaffold プロファイルを使用する必要があります。

  • region_name は、サービス、ジョブ、ワーカープールが作成されるリージョンです。サービス、ジョブ、ワーカープールは、Cloud Run がサポートする任意のリージョンに配置できます。

以下は、作成する Cloud Run サービス、ジョブ、ワーカープールを定義するターゲット構成の例です。

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: dev
      description: development service
      run:
       location: projects/my-app/locations/us-central1

このターゲットは、Cloud Deploy デリバリー パイプラインの定義内または個別に定義できます。いずれにしても、リリースを作成して Cloud Run サービス、ジョブ、ワーカープールをデプロイする前に、ターゲットを登録する必要があります。

Skaffold 構成を作成する

Cloud Run デプロイskaffold.yaml ファイルの例を次に示します。

apiVersion: skaffold/v4beta7
kind: Config
metadata: 
  name: cloud-run-application
manifests