ビルドログを保存して表示する

Cloud Logging と Cloud Storage のツールを使用してビルドログをグループ化して分析できるように、ビルドログをログバケットに保存するようにビルド構成ファイルをセットアップします。 ビルドログのストレージを構成すると、ログの保存と分析をより細かく制御できます。ビルドログのストレージ設定を 未定義のままにすると、Cloud Build は、ビルドログの分析オプションが少ない Google CloudGoogle 所有の バケットに保存します。

このページでは、さまざまな種類のバケットにビルドログを保存する方法と、保存したログを表示および削除する方法について説明します。

始める前に

ビルドログのストレージを構成するためのビルド構成ファイルのオプションと、バケットの所有権がログのアクセシビリティに与える影響について理解しておいてください。 詳細については、 ビルドログのストレージ オプションをご覧ください。

ユーザーが作成したバケットにビルドログを保存する

ユーザーが作成したバケットを使用すると、バケットの管理と構成をより細かく制御できます。

をご覧ください。

ユーザーが作成した Cloud Logging バケットにビルドログを保存する

ユーザーが作成した Logging バケットを使用すると、保存されたビルドログの保持期間を調整できます。Logging のユーザーが作成したバケットにビルドログを保存するには、次の操作を行います。

IAM 権限を付与する:

ユーザーが作成した Cloud Logging バケットにビルドログを保存するために必要な権限を取得するには、プロジェクトのアカウントまたはサービス アカウントに対するログ構成書き込み roles/logging.configWriter)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

Logging バケットを構成する:

  1. [バケットを作成]し、値を設定します 、[保持期間]フィールド。

  2. シンクを作成 して、ビルドログを新しいバケットにルーティングします。

    1. シンクのビルド包含フィルタに次の値を入力します。

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      PROJECT-ID は、実際の Google Cloud プロジェクト ID に置き換えます。

    2. (省略可)ビルドログがデフォルトの Logging バケットに送信されないようにするには、 ログバケットへのログエントリの保存を停止するの例に沿って操作します。

ユーザーが作成した Cloud Storage バケットにビルドログを保存する

ユーザーが作成した Cloud Storage バケットにビルドログを保存するには、次の操作を行います。

IAM 権限を付与する:

Cloud Storage バケットと Cloud Build が同じ プロジェクト内にあり、Cloud Build の 従来のサービス アカウントを使用している場合、 Cloud Build の従来のサービス アカウントには 必要な IAM 権限がデフォルトで付与されています。 Google Cloud 追加の権限を付与する必要はありません。まだ完了していない場合は、次の操作を行います。

ユーザーが作成した Cloud Storage バケットにビルドログを保存するために必要な権限を取得するには、ビルドに使用するサービス アカウントに対するストレージ管理者 roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

Cloud Storage バケットを構成する:

  1. プロジェクトで、保持ポリシーを設定せずに、ビルドログを保存する Cloud Storage バケットを作成します。 Google Cloud

  2. ビルド構成ファイルに、ビルドログを保存するために作成した Cloud Storage バケットを指す logsBucket フィールドを追加します。次のビルド構成ファイルの例では、コンテナ イメージをビルドし、ビルドログを mylogsbucket という名前のバケットに保存します。

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. ビルド構成ファイルを使用して、ビルド をコマンドライン、API またはトリガーで開始します。

ビルドが完了すると、Cloud Build はビルド構成ファイルで指定した Cloud Storage バケットにビルドログを保存します。

リージョン固有の Cloud Storage バケットにビルドログを保存する

ビルドと同じリージョンにあるユーザー所有の Cloud Storage バケットに Cloud Build がビルドログを送信するように、ビルドを構成できます。 ビルドとビルドログ ストレージ バケットのリージョンを揃えることで、データ所在地の要件を満たすことができます。

IAM 権限を付与する:

Cloud Storage バケットと Cloud Build が同じ プロジェクト内にあり、Cloud Build の 従来のサービス アカウントを使用している場合、 そのサービス アカウントには 必要な IAM 権限がデフォルトで付与されています。 Google Cloud 追加の権限を付与する必要はありません。まだ完了していない場合は、次の操作を行います。

ユーザー所有のリージョン固有のバケットにビルドログを保存するために必要な権限を取得するには、ビルドに使用するサービス アカウントに対するストレージ管理者 roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

リージョン固有の Cloud Storage バケットを構成する:

  1. ビルド構成ファイルに defaultLogsBucketBehavior オプションを追加し、その値を REGIONAL_USER_OWNED_BUCKET に設定します。

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    

    JSON

    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  2. ビルド構成ファイルを使用して、ビルド をコマンドライン、API またはトリガーで開始します。

    ビルドを実行すると、Cloud Build はビルドを実行しているリージョンに新しいバケットを作成し、そのバケットにビルドログを保存します。REGIONAL_USER_OWNED_BUCKET が有効である限り、同じプロジェクトとリージョンでの以降のビルドでは既存のバケットが使用されます。このバケットはユーザー所有であるため、ユーザーが作成したバケットと同様に構成できます。

    REGIONAL_USER_OWNED_BUCKET オプションを設定して複数のリージョンでビルドを作成すると、Cloud Build は一意のリージョンごとに Cloud Storage バケットを作成します。

ビルドのリージョンとログバケットを揃える必要がある場合は、ユーザーが作成したバケットを使用することもできます。この場合、同じリージョンを持つ既存のユーザー作成バケットを選択するか、作成します。作成する場合は、 ユーザーが作成したバケットにビルドログを保存する の手順に沿って操作し、ユーザーが作成したバケットがビルドと同じリージョンにあることを確認してください。

ビルドログを表示

ビルドログを表示するには、次の操作を行います。

IAM 権限を付与する:

Cloud Storage または Logging でビルドログを表示するために必要な権限を取得するには、ビルドに使用するサービス アカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • ユーザーが作成したバケットまたはユーザー所有の Cloud Storage バケットでビルドログを表示する:
    • ストレージ オブジェクト閲覧者(roles/storage.objectViewer)- ビルドログを表示するプリンシパル
    • ログ表示アクセス者(roles/logging.viewAccessor)- ビルドログを表示するプリンシパル
  • デフォルトの Cloud Storage バケットでビルドログを表示する: 閲覧者(roles/viewer)- ビルドが構成されているプロジェクト
  • Logging でビルドログを表示する: ログビューア(roles/logging.viewer)- ビルドログを表示するプリンシパル

ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

でビルドログを表示する Google Cloud

コンソール

  1. コンソールで Cloud Build ページを開きます。 Google Cloud

    Cloud Build ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. In the [Region] drop-down menu, select the region for your build.

  4. [ビルド履歴] ページで、特定のビルドを選択します。

  5. [**ビルドの詳細**] ページの [**ステップ**] で、 [**ビルドの概要**] をクリックしてビルド全体のビルドログを表示するか、 ビルドステップを選択して対象のステップのビルドログを表示します。

  6. ビルドログが Logging に保存されている場合は、 [ビルドログ] パネルで アイコンをクリックしてログ エクスプローラ でログを表示します。

gcloud

gcloud builds log コマンドを実行します。ここで、 build-id はビルドログを取得するビルドの ID です。ビルド ID は、gcloud builds submit の実行時にビルド送信プロセスの最後に表示されるか、gcloud builds list の実行時に ID 列に表示されます。

gcloud builds log build-id

GitHub と GitHub Enterprise でビルドログを表示する

gcloud CLI または Cloud Build API を使用して GitHub または GitHub Enterprise トリガーを作成し、オプションとして --include-logs-with-status を指定した場合、 GitHub と GitHub Enterprise でビルドログを表示できます。

GitHub と GitHub Enterprise でビルドログを表示するには、次の操作を行います。

  1. トリガーに関連付けられているリポジトリに移動します。

  2. commit のリストに移動します。

  3. ビルドログを表示する commit の行を見つけます。

  4. commit の行にある結果アイコンをクリックします。

    commit に関連付けられているチェックのリストが表示されます。

  5. ビルドログを表示する行の [詳細] をクリックします。

    commit に関連付けられている [概要] ページが表示されます。--include-logs-with-status フラグを使用してトリガーを作成した場合、ページの [詳細] セクションにビルドログが表示されます。

ビルドログとバケットを削除する

Cloud Storage でビルドログとバケットを削除するために必要な権限を取得するには、ビルドに使用するサービス アカウントに対する次の IAM ロールを付与するよう管理者に依頼してください。

  • ユーザーが作成したバケットまたはユーザー所有の Cloud Storage バケットでビルドログを削除する: ストレージ管理者(roles/storage.admin)- ビルドログを削除するユーザーまたはサービス アカウント
  • ユーザーが作成したバケットまたはユーザー所有の Cloud Storage バケットを削除する: ストレージ管理者(roles/storage.admin)- バケットを削除するユーザーまたはサービス アカウント
  • ユーザーが作成した Logging バケットを削除する: ログ構成書き込み(roles/logging.configWriter)- プロジェクト

ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

ユーザーが作成したバケットまたはユーザー所有の Cloud Storage バケットでビルドログを削除するには、 Cloud Storage ドキュメントの オブジェクトの削除の手順に沿って操作します。

ユーザーが作成したバケットまたはユーザー所有の Cloud Storage バケットを削除するには、 Cloud Storage ドキュメントのバケットの削除の手順に沿って操作します。

ユーザーが作成した Logging バケットを削除するには、 Logging ドキュメントの バケットを削除するの手順に沿って操作します。

次のステップ