調度環境資源

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面說明如何調整 Cloud Composer 環境。

其他有關資源調度的頁面:

垂直和水平縮放

水平資源調度的選項:

  • 調整工作站數量下限和上限。
  • 調整排程器和觸發器的數量。

垂直資源調度的選項:

  • 調整 worker、排程器、觸發器和網路伺服器。縮放和效能參數。
  • 調整環境大小。

資源限制

元件 計數下限 計數上限 最低 vCPU 最高 vCPU vCPU 最小步長 記憶體容量下限 (GB) 記憶體容量上限 (GB) 記憶體最小步長 (GB) 每個 vCPU 的記憶體容量下限 (GB) 每個 vCPU 的記憶體容量上限 (GB) 最低儲存空間 (GB) 儲存空間上限 (GB) 儲存空間最小步增量 (GB)
排程器 1 10 0.5 28 0.25 0.5 80 - 1 6.5 0.05 10 -
觸發器 0 10 0.5 1 0.25 0.5 80 - 1 6.5 - - -
網路伺服器 - - 0.5 28 0.25 1 80 - 1 6.5 0.05 10 -
工作站 1 100 0.5 28 0.25 0.5 80 - 1 6.5 0.05 10 -

調整 worker 參數

您可以為環境設定工作站數量下限和上限。Cloud Composer 會在設定的限制範圍內自動調整環境。您隨時可以調整這些限制。

您可以指定 Airflow 工作站在環境中使用的 CPU、記憶體和磁碟空間數量。這樣一來,您除了可以使用多個 worker 提供的水平調整功能,還能提升環境效能。

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,點選「編輯」

  5. 在「工作負載設定」窗格中,調整 Airflow worker 的參數:

    • 在「工作站數量下限」欄位中,指定環境必須一律執行的 Airflow 工作站數量。在環境的正常運作期間,即使較少的工作站就能處理負載,環境中的工作站數量也不會低於這個數字。

    • 在「工作站數量上限」欄位中,指定環境可執行的 Airflow 工作站數量上限。即使處理負載需要更多工作站,環境中的工作站數量也不會超過這個數字。

    • 在「CPU」、「記憶體」和「儲存空間」欄位中,指定 Airflow 工作站的 CPU、記憶體和儲存空間數量。每個 worker 都會使用指定數量的資源。

  6. 按一下 [儲存]

gcloud

可用的 Airflow worker 參數如下:

  • --min-workers:環境必須一律執行的 Airflow 工作者數量。環境中的工作站數量不會低於這個數字,即使較少的工作站也能處理負載。
  • --max-workers:環境可執行的 Airflow 工作者數量上限。即使處理負載需要更多工作站,環境中的工作站數量也不會超過這個數字。
  • --worker-cpu:Airflow worker 的 CPU 數量。
  • --worker-memory:Airflow 工作站的記憶體量。
  • --worker-storage:Airflow worker 的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --min-workers WORKERS_MIN \
  --max-workers WORKERS_MAX \
  --worker-cpu WORKER_CPU \
  --worker-memory WORKER_MEMORY \
  --worker-storage WORKER_STORAGE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WORKERS_MIN:Airflow 工作站的最低數量。
  • WORKERS_MAX:Airflow 工作站的數量上限。
  • WORKER_CPU:worker 的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:worker 的記憶體量。
  • WORKER_STORAGE:工作站的磁碟大小。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --min-workers 2 \
  --max-workers 6 \
  --worker-cpu 1 \
  --worker-memory 2 \
  --worker-storage 2

API

  1. 建構 environments.patch API 要求。

  2. 在這個要求中:

    1. updateMask 參數中,指定要更新的欄位。舉例來說,如要更新 worker 的所有參數,請指定 config.workloadsConfig.worker.cpu,config.workloadsConfig.worker.memoryGb,config.workloadsConfig.worker.storageGB,config.softwareConfig.workloadsConfig.worker.minCount,config.softwareConfig.workloadsConfig.worker.maxCount 遮罩。

    2. 在要求主體中,指定新的 worker 參數。

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": WORKERS_MIN,
      "maxCount": WORKERS_MAX,
      "cpu": WORKER_CPU,
      "memoryGb": WORKER_MEMORY,
      "storageGb": WORKER_STORAGE
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WORKERS_MIN:Airflow 工作站的最低數量。
  • WORKERS_MAX:Airflow 工作站的數量上限。
  • WORKER_CPU:worker 的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:工作站的記憶體量,以 GB 為單位。
  • WORKER_STORAGE:工作站的磁碟大小 (以 GB 為單位)。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.worker.minCount,
// config.workloadsConfig.worker.maxCount
// config.workloadsConfig.worker.cpu,
// config.workloadsConfig.worker.memoryGb,
// config.workloadsConfig.worker.storageGB

"config": {
  "workloadsConfig": {
    "worker": {
      "minCount": 2,
      "maxCount": 6,
      "cpu": 1,
      "memoryGb": 2,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.worker 區塊中的下列欄位可控制 Airflow 工作站參數。每個 worker 都會使用指定數量的資源。

  • worker.min_count:環境必須一律執行的 Airflow 工作者數量。環境中的工作站數量不會低於這個數字,即使較少的工作站也能處理負載。
  • worker.max_count:環境可執行的 Airflow 工作者數量上限。即使處理負載需要更多工作站,環境中的工作站數量也不會超過這個數字。
  • worker.cpu:Airflow worker 的 CPU 數量。
  • worker.memory_gb:Airflow 工作站的記憶體量。
  • worker.storage_gb:Airflow 工作站的磁碟空間量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      worker {
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WORKERS_MIN:Airflow 工作站的最低數量。
  • WORKERS_MAX:Airflow 工作站的數量上限。
  • WORKER_CPU:worker 的 CPU 數量,單位為 vCPU。
  • WORKER_MEMORY:工作站的記憶體量,以 GB 為單位。
  • WORKER_STORAGE:工作站的磁碟大小 (以 GB 為單位)。

範例:

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

  config {

    workloads_config {
      worker {
        min_count = 2
        max_count = 6
        cpu = 1
        memory_gb = 2
        storage_gb = 2
      }
    }

  }
}

調整排程器參數

您的環境可以同時執行多個 Airflow 排程器。使用多個排程器將負載分配到多個排程器執行個體,以提升效能和穩定性。

環境中最多可有 10 個排程器。

在擴充調度器時,請考量下列事項:

  • 在 Cloud Composer 3 環境中,Airflow DAG 處理器會以與排程器不同的環境元件執行。由於 DAG 處理器會將 DAG 的剖析工作從排程器卸載,因此您可能需要重新分配先前分配給 Airflow 排程器的資源。

    由於排程器不會在 Cloud Composer 3 中剖析 DAG,因此 CPU 和記憶體的資源限制會比 Cloud Composer 2 低。

  • 增加排程器的數量不一定能改善 Airflow 效能。

    舉例來說,如果未使用額外排程器,且該排程器會耗用環境資源,卻不會提升整體效能,就可能發生這種情況。實際的排程器效能取決於 Airflow 工作站數量、在環境中執行的 DAG 和工作數量,以及 Airflow 和環境的設定。

  • 建議您先使用兩個排程器,然後監控環境效能。如果您變更排程器數量,隨時可以將環境規模縮減至原始排程器數量。

如要進一步瞭解如何設定多個排程器,請參閱 Airflow 說明文件

您可以指定 Airflow 調度器在環境中使用的 CPU、記憶體和磁碟空間數量。這樣一來,您除了可以使用多個排程器提供的水平調整功能,還能提升環境效能。

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,點選「編輯」

  5. 在「工作負載設定」窗格中,調整 Airflow 排程器的參數:

    • 在「Number of schedulers」下拉式清單中,選取環境的排程器數量。

    • 在「CPU」、「記憶體」和「儲存空間」欄位中,指定 Airflow 調度器的 CPU、記憶體和儲存空間數量。每個排程器都會使用指定數量的資源。

  6. 按一下 [儲存]

gcloud

可用的 Airflow 排程器參數如下:

  • --scheduler-count:環境中的排程器數量。

  • --scheduler-cpu:Airflow 排程器的 CPU 數量。

  • --scheduler-memory:Airflow 排程器的記憶體用量。

  • --scheduler-storage:Airflow 排程器的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --scheduler-cpu SCHEDULER_CPU \
  --scheduler-memory SCHEDULER_MEMORY \
  --scheduler-storage SCHEDULER_STORAGE \
  --scheduler-count SCHEDULER_COUNT

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體量。

  • SCHEDULER_STORAGE:排程器的磁碟大小。

  • SCHEDULER_COUNT:排程器數量。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --scheduler-cpu 0.5 \
  --scheduler-memory 2.5 \
  --scheduler-storage 2 \
  --scheduler-count 2

API

  1. 建構 environments.patch API 要求。

  2. 在這個要求中:

    1. updateMask 參數中,指定 config.workloadsConfig.scheduler 遮罩,以更新所有排程器參數或僅更新排程器數量。您也可以指定遮罩,更新 count 以外的個別排程器參數。例如:config.workloadsConfig.scheduler.cpu

    2. 在要求主體中,指定新的排程器參數。

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": SCHEDULER_CPU,
      "memoryGb": SCHEDULER_MEMORY,
      "storageGb": SCHEDULER_STORAGE,
      "count": SCHEDULER_COUNT
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體量 (GB)。

  • SCHEDULER_STORAGE:排程器的磁碟大小 (GB)。

  • SCHEDULER_COUNT:排程器數量。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.scheduler

"config": {
  "workloadsConfig": {
    "scheduler": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2,
      "count": 2
    }
  }
}

Terraform

workloads_config.scheduler 區塊中的下列欄位可控制 Airflow 排程器參數。每個排程器都會使用指定數量的資源。

  • scheduler.count:環境中的排程器數量。

  • scheduler.cpu:Airflow 排程器的 CPU 數量。

  • scheduler.memory_gb:Airflow 排程器的記憶體用量。

  • scheduler.storage_gb:排程器的磁碟空間量。

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

  config {

    workloads_config {
      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。

  • SCHEDULER_CPU:排程器的 CPU 數量,單位為 vCPU。

  • SCHEDULER_MEMORY:排程器的記憶體量 (GB)。

  • SCHEDULER_STORAGE:排程器的磁碟大小 (GB)。

  • SCHEDULER_COUNT:排程器數量。

範例:

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

  config {

    workloads_config {
      scheduler {
        
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
        
        count = 2
      }
    }

  }
}

調整觸發器參數

您可以將觸發器數量設為零,但環境中至少需要一個觸發器例項 (在高彈性環境中至少需要兩個),才能在 DAG 中使用可延遲運算子

視環境的復原模式而定,觸發器數量的設定可能有所不同:

  • 標準復原力:最多可執行 10 個觸發條件。
  • 高復原力:至少 2 個觸發條件,最多 10 個。

即使觸發器數量設為零,系統也會建立觸發器 Pod 定義,並顯示在環境叢集中,但不會執行實際的觸發器工作負載。

您也可以指定 Airflow 觸發器在環境中使用的 CPU、記憶體和磁碟空間數量。這樣一來,您除了可以使用多個觸發條件進行水平調整,還能提升環境效能。

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,點選「編輯」

  5. 在「工作負載設定」窗格中,調整 Airflow 觸發條件的參數:

    1. 在「Triggerer」專區的「Number of triggerers」欄位中,輸入環境中的觸發條件數量。

      如果您為環境設定至少一個觸發器,請同時使用 CPU記憶體 欄位,為觸發器設定資源分配。

    2. 在「CPU」和「記憶體」中,指定 Airflow 觸發器的 CPU、記憶體和儲存空間數量。每個觸發器都會使用指定數量的資源。

  6. 按一下 [儲存]

gcloud

可用的 Airflow 觸發條件參數如下:

  • --triggerer-count:環境中的觸發條件數量。

    • 針對標準復原力環境,請使用 010 之間的值。
    • 對於具備高度彈性的環境,請使用 0,或是介於 210 之間的值。
  • --triggerer-cpu:Airflow 觸發器的 CPU 數量。

  • --triggerer-memory:Airflow 觸發器的記憶體用量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --triggerer-count TRIGGERER_COUNT \
  --triggerer-cpu TRIGGERER_CPU \
  --triggerer-memory TRIGGERER_MEMORY

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • TRIGGERER_COUNT:觸發條件數量。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。
  • TRIGGERER_MEMORY:觸發器的記憶體量。

範例:

  • 擴充為四個觸發器執行個體:
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 4 \
  --triggerer-cpu 1 \
  --triggerer-memory 1
  • 將觸發器數量設為 0,即可停用觸發器。這項作業不需要為觸發器指定 CPU 或記憶體。
gcloud composer environments update example-environment \
  --location us-central1 \
  --triggerer-count 0

API

  1. updateMask 查詢參數中,指定 config.workloadsConfig.triggerer 遮罩。

  2. 在要求主體中,指定觸發器的所有三個參數。

"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": TRIGGERER_COUNT,
      "cpu": TRIGGERER_CPU,
      "memoryGb": TRIGGERER_MEMORY
    }
  }
}

更改下列內容:

  • TRIGGERER_COUNT:觸發條件數量。

    • 針對標準復原力環境,請使用 010 之間的值。
    • 對於具備高度彈性的環境,請使用 0,或是介於 210 之間的值。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。

  • TRIGGERER_MEMORY:觸發器的記憶體量。

範例:

  • 將觸發器數量設為 0,即可停用觸發器。這項作業不需要為觸發器指定 CPU 或記憶體。
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 0
    }
  }
}
  • 擴充為四個觸發器執行個體:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.triggerer
"config": {
  "workloadsConfig": {
    "triggerer": {
      "count": 4,
      "cpu": 1,
      "memoryGb": 1
    }
  }
}

Terraform

workloads_config.triggerer 區塊中的下列欄位可控制 Airflow 觸發器參數。每個觸發器都會使用指定數量的資源。

  • triggerer.count:環境中的觸發條件數量。

    • 針對標準復原力環境,請使用 010 之間的值。
    • 對於具備高度彈性的環境,請使用 0,或是介於 210 之間的值。
  • triggerer.cpu:Airflow 觸發器的 CPU 數量。

  • triggerer.memory_gb:Airflow 觸發器的記憶體量。

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

  config {

    workloads_config {
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • TRIGGERER_COUNT:觸發條件數量。
  • TRIGGERER_CPU:觸發器的 CPU 數量,單位為 vCPU。
  • TRIGGERER_MEMORY:觸發器的記憶體容量 (GB)。

範例:

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

  config {

    workloads_config {
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
    }

  }
}

調整網路伺服器參數

您可以指定 Airflow 網路伺服器在環境中使用的 CPU、記憶體和磁碟空間數量。舉例來說,您可以透過這種方式擴充 Airflow UI 的效能,以滿足大量使用者或大量受管理 DAG 的需求。

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,點選「編輯」

  5. 在「工作負載設定」窗格中,調整網路伺服器的參數。在「CPU」、「記憶體」和「儲存空間」欄位中,指定網頁伺服器的 CPU、記憶體和儲存空間數量。

  6. 按一下 [儲存]

gcloud

可用的 Airflow 網路伺服器參數如下:

  • --web-server-cpu:Airflow 網路伺服器的 CPU 數量。
  • --web-server-memory:Airflow 網路伺服器的記憶體量。
  • --web-server-storage:Airflow 網路伺服器的磁碟空間量。

執行下列 Google Cloud CLI 指令:

gcloud composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --web-server-cpu WEB_SERVER_CPU \
  --web-server-memory WEB_SERVER_MEMORY \
  --web-server-storage WEB_SERVER_STORAGE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,單位為 vCPU。
  • WEB_SERVER_MEMORY:Web 伺服器的記憶體量。
  • WEB_SERVER_STORAGE:Web 伺服器的記憶體量。

範例:

gcloud composer environments update example-environment \
  --location us-central1 \
  --web-server-cpu 1 \
  --web-server-memory 2.5 \
  --web-server-storage 2

API

  1. 建構 environments.patch API 要求。

  2. 在這個要求中:

    1. updateMask 參數中指定 config.workloadsConfig.webServer 遮罩,以更新所有網路伺服器參數。您也可以為下列參數指定遮罩,藉此更新個別網頁伺服器參數:config.workloadsConfig.webServer.cpuconfig.workloadsConfig.webServer.memoryGbconfig.workloadsConfig.webServer.storageGb

    2. 在要求主體中指定新的網路伺服器參數。

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": WEB_SERVER_CPU,
      "memoryGb": WEB_SERVER_MEMORY,
      "storageGb": WEB_SERVER_STORAGE
    }
  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,單位為 vCPU。
  • WEB_SERVER_MEMORY:Web 伺服器的記憶體量 (以 GB 為單位)。
  • WEB_SERVER_STORAGE:網頁伺服器的磁碟大小 (以 GB 為單位)。

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.workloadsConfig.webServer.cpu,
// config.workloadsConfig.webServer.memoryGb,
// config.workloadsConfig.webServer.storageGb

"config": {
  "workloadsConfig": {
    "webServer": {
      "cpu": 0.5,
      "memoryGb": 2.5,
      "storageGb": 2
    }
  }
}

Terraform

workloads_config.web_server 區塊中的下列欄位可控制網頁伺服器參數。

  • web_server.cpu:網路伺服器的 CPU 數量。
  • web_server.memory_gb:網路伺服器的記憶體用量。
  • web_server.storage_gb:網路伺服器的磁碟空間量。
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
    }

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • WEB_SERVER_CPU:網路伺服器的 CPU 數量,單位為 vCPU。
  • WEB_SERVER_MEMORY:Web 伺服器的記憶體量 (以 GB 為單位)。
  • WEB_SERVER_STORAGE:網頁伺服器的磁碟大小 (以 GB 為單位)。

範例:

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

  config {

    workloads_config {
      web_server {
        cpu = 0.5
        memory_gb = 1.875
        storage_gb = 1
      }
    }

  }
}

調整環境大小

環境大小會控制代管 Cloud Composer 基礎架構的效能參數,例如 Airflow 資料庫。

如要執行大量 DAG 和工作,請考慮選取較大的環境規模。

主控台

  1. 前往 Google Cloud 控制台的「Environments」頁面。

    前往「環境」

  2. 在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。

  3. 前往「環境設定」分頁。

  4. 在「資源」>「工作負載設定」項目中,點選「編輯」

  5. 在「資源」>「核心基礎架構」項目中,點選「編輯」

  6. 在「核心基礎架構」窗格中的「環境大小」欄位中,指定環境大小。

  7. 按一下 [儲存]

gcloud

--environment-size 引數可控制環境大小:

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --environment-size ENVIRONMENT_SIZE

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • ENVIRONMENT_SIZEsmallmediumlarge

範例:

gcloud composer environments update example-environment \
    --location us-central1 \
    --environment-size medium

API

  1. 建立 environments.patch API 要求。

  2. 在這個要求中:

    1. updateMask 參數中指定 config.environmentSize 遮罩。

    2. 在要求主體中指定環境大小。

  "config": {
    "environmentSize": "ENVIRONMENT_SIZE"
  }

更改下列內容:

  • ENVIRONMENT_SIZE:環境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

範例:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.environmentSize

"config": {
  "environmentSize": "ENVIRONMENT_SIZE_MEDIUM"
}

Terraform

config 區塊中的 environment_size 欄位可控制環境大小:

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

  config {

    environment_size = "ENVIRONMENT_SIZE"

  }
}

更改下列內容:

  • ENVIRONMENT_NAME:環境名稱。
  • LOCATION:環境所在的地區。
  • ENVIRONMENT_SIZE:環境大小,ENVIRONMENT_SIZE_SMALLENVIRONMENT_SIZE_MEDIUMENVIRONMENT_SIZE_LARGE

範例:

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

  config {

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    }
  }
}

後續步驟