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

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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"

  }
}

次のステップ