カスタム環境のバケットを使用する

Cloud Composer 1 | Cloud Composer 2

Cloud Composer 2 では、環境を作成するときに環境のバケットとしてカスタム Cloud Storage バケットを指定できます。環境では、デフォルト環境のバケットと同じ方法でこのバケットが使用され、デフォルト環境のバケットは作成されません。

カスタム バケットでは、次のことが可能です。

  • 要件に適合したバケット構成を使用する。
  • 定期的な開発またはテストのために、継続的に既存のバケットを使用する。
  • 以前の環境の既存のバケットを再利用し、CI / CD とデータ統合を維持する。
  • バケット間でデータを転送せずに、環境を削除して再作成する。
  • カスタム バケットに DAG ファイルなどの必要なデータを事前入力してから、環境を作成する。

準備

  • この機能は Cloud Composer バージョン 2.5.0 以降でサポートされています。以前のバージョンの Cloud Composer 2 では、この機能はサポートされていません。
  • カスタム バケットは、環境と同じリージョンに配置する必要があります。マルチリージョン バケットとデュアルリージョン バケットはサポートされていません。
  • カスタム バケットと環境が同じプロジェクト内に存在する必要があります。
  • カスタムバケットには、Standard Storage クラスが必要です。
  • カスタム バケットには、保持ポリシーまたは保持ポリシーのロックは適用されていません。
  • 同じカスタム バケットを複数の環境で同時に使用することはできません。指定されたバケットがすでに別の環境によって使用されている場合、Cloud Composer でエラーが発生します。環境を削除して、別の環境で同じバケットを使用することもできます。
  • 環境を削除してから別の環境で同じバケットを使用すると、新しい環境では以前の環境の Airflow タスクログが Airflow UI に表示されません。ログはバケットに残りますが、新しい環境ではログは DAG 実行には関連付けられません。

カスタム バケットを使用して環境を作成する

コンソール

環境を作成するときにカスタム Cloud Storage バケットを指定するには:

  1. [環境の作成] ページの [詳細設定] セクションで、[詳細設定を表示] をクリックします。
  2. [カスタム バケット] を選択します。
  3. [バケット名] フィールドで、バケットを指定するか選択します。

gcloud

環境を作成するときに、--storage-bucket 引数で環境のカスタム バケットを指定します。

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --storage-bucket CUSTOM_STORAGE_BUCKET

次のように置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン。
  • CUSTOM_STORAGE_BUCKET: Cloud Storage バケットの名前。バケット URI(gs:// 接頭辞が付く)を指定することもできます。

例:

gcloud composer environments create example-environment \
    --location us-cental1 \
    --storage-bucket us-central1-example-bucket

API

環境を作成するときに、[環境] > [StorageConfig] リソースで、環境のカスタム バケットを指定します。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "storageConfig": {
    "bucket": "CUSTOM_STORAGE_BUCKET"
  }
}

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • LOCATION: 環境が配置されているリージョン。
  • ENVIRONMENT_NAME: 環境の名前。
  • CUSTOM_STORAGE_BUCKET: Cloud Storage バケットの名前(gs:// 接頭辞は付かない)。

例:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "storageConfig": {
    "bucket": "us-central1-example-bucket"
  }
}

Terraform

環境を作成するときに、storage_config ブロックの bucket フィールドで環境のカスタム バケットを指定します。

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

次のように置き換えます。

  • ENVIRONMENT_NAME: 環境の名前。
  • LOCATION: 環境が配置されているリージョン。
  • CUSTOM_STORAGE_BUCKET: Cloud Storage バケットの名前。バケット URI(gs:// 接頭辞が付く)を指定することもできます。

例:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  storage_config {

    bucket = "gs://us-central1-example-bucket"

  }
}

次のステップ