Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁說明如何設定環境,以便依排程儲存快照。
如要進一步瞭解環境快照的運作方式,以及如何手動儲存快照,請參閱「儲存及載入快照」。
排程快照的運作方式
啟用根據排程建立快照的功能後,Cloud Composer 會定期將環境快照儲存至 Cloud Storage 值區。
如果您手動建立快照,Cloud Composer 預設會將快照儲存在環境的值區中。如果是排程快照,建議您將快照儲存在不同的值區。這樣就能為這個 bucket 設定權限和生命週期設定。一個值區可存放多個環境的快照,您也可以建立跨區域備援的值區。
事前準備
如要進一步瞭解快照的相關規定和限制,請參閱「儲存及載入快照」一文。
建立排程快照的值區
建立 bucket 來存放排程快照。請考量您要如何使用環境快照。如果是災難復原計畫的一部分,請使用跨區域備援的 bucket,或不同區域的 bucket,這樣即使區域全面中斷,您也能存取資料。否則,與環境位於相同區域的 bucket 可能更適合,這樣一來,您就能減少區域間資料移轉的費用。
設定 bucket 的權限
設定下列權限:
環境的服務帳戶必須具備這個值區的讀取和寫入權限。舉例來說,「Storage 物件管理員」角色就具備這類權限。
使用者帳戶不需要任何額外權限,即可從值區載入快照,除非您想從 Google Cloud 控制台查看值區內容。在這種情況下,使用者帳戶必須具備該儲存空間的讀取權限。
設定值區的生命週期設定
如要節省儲存空間費用,您可以設定規則,在一段時間後刪除環境快照。
舉例來說,如要自動刪除超過 30 天的快照,請按照下列步驟操作:
- 為 bucket 設定生命週期設定。
- 指定「刪除物件」動作。
- 選取「年齡」,並將條件設為 30 天。
為環境啟用快照排程
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「復原設定」>「快照排程」中,按一下「編輯」。「Snapshot schedule」(快照排程) 窗格隨即開啟。
在「快照排程」窗格中,選取「按照指定的排程時間定期建立快照」。
在「排程頻率」下拉式清單中,選取每日、每週或自訂快照週期。
您可以使用 unix-cron 格式指定自訂時間表。舉例來說,如要每 30 分鐘儲存一次快照,請指定
*/30 * * * *
。在「快照位置」欄位中,選取要儲存快照的 bucket 資料夾。
gcloud
更新環境設定。下列引數會定義排程快照的參數:
--enable-scheduled-snapshot-creation
啟用排程快照。--snapshot-location
會指定要儲存快照的值區資料夾。--snapshot-creation-schedule
會以 unix-cron 格式指定環境快照的擷取頻率。舉例來說,如要每 30 分鐘建立一次快照,請指定*/30 * * * *
。--snapshot-schedule-timezone
會定義排程的時區。這個值是時間偏移量,不會將日光節約時間變化納入考量。有效值介於UTC-12
到UTC+12
之間。例如:UTC
、UTC-01
、UTC+03
。
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://SNAPSHOTS_FOLDER" \
--snapshot-creation-schedule "CRON_EXPRESSION" \
--snapshot-schedule-timezone "TIME_ZONE"
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。SNAPSHOTS_FOLDER
,其中包含要儲存快照的值區資料夾 URI。CRON_EXPRESSION
,並以Unix-Cron 格式指定排程。TIME_ZONE
替換為排程的時區。
範例 (每天 4:00,UTC+01):
gcloud composer environments update example-environment \
--location us-central1 \
--enable-scheduled-snapshot-creation \
--snapshot-location "gs://example-bucket/environment_snapshots" \
--snapshot-creation-schedule "0 4 * * *" \
--snapshot-schedule-timezone "UTC+01"
API
建構 environments.patch
API 要求。
在這項要求中:
在
updateMask
參數中,指定config.recoveryConfig.scheduledSnapshotsConfig
遮罩,以取代現有的排定快照設定。在要求主體中,指定快照的設定:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://SNAPSHOTS_FOLDER", "snapshot_creation_schedule": "CRON_EXPRESSION", "time_zone": "TIME_ZONE" } } } }
取代:
SNAPSHOTS_FOLDER
,其中包含要儲存快照的值區資料夾 URI。CRON_EXPRESSION
,並以Unix-Cron 格式指定排程。TIME_ZONE
替換為排程的時區。這個值是時間偏移量,不會考量日光節約時間的變更。有效值介於UTC-12
到UTC+12
之間。例如:UTC
、UTC-01
、UTC+03
。
範例 (每天 4:00,UTC+01):
// PATCH https://composer.googleapis.com/v1/projects/example-project/ // locations/us-central1/environments/example-environment?updateMask= // config.recoveryConfig.scheduledSnapshotsConfig { "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": true, "snapshot_location": "gs://example-bucket/environment_snapshots", "snapshot_creation_schedule": "0 4 * * *", "time_zone": "UTC+01" } } } }
Terraform
recovery_config
區塊中的 scheduled_snapshots_config
會定義排定快照的參數:
enabled
啟用排程快照。snapshot_location
會指定要儲存快照的值區資料夾。snapshot_creation_schedule
會以 unix-cron 格式指定環境快照的擷取頻率。舉例來說,如要每 30 分鐘建立一次快照,請指定*/30 * * * *
。
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://SNAPSHOTS_FOLDER"
snapshot_creation_schedule = "CRON_EXPRESSION"
time_zone = "TIME_ZONE"
}
}
}
取代:
SNAPSHOTS_FOLDER
,其中包含要儲存快照的值區資料夾 URI。CRON_EXPRESSION
,並以Unix-Cron 格式指定排程。TIME_ZONE
替換為排程的時區。這個值是時間偏移量,不會考量日光節約時間的變更。有效值介於UTC-12
到UTC+12
之間。例如:UTC
、UTC-01
、UTC+03
。
範例 (每天 4:00,UTC+01):
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = true
snapshot_location = "gs://example-bucket/environment_snapshots"
snapshot_creation_schedule = "0 4 * * *"
time_zone = "UTC+01"
}
}
}
停用排定的快照
停用排程快照後,系統不會修改或移除已建立的快照。這些快照會保留在儲存位置。
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。 「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「復原設定」>「快照排程」中,按一下「編輯」。「Snapshot schedule」(快照排程) 窗格隨即開啟。
在「Snapshot schedule」(快照排程) 窗格中,選取「Do not create snapshots automatically」(不要自動建立快照)。
gcloud
更新環境設定。--disable-scheduled-snapshot-creation
引數會停用排定的快照。
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--disable-scheduled-snapshot-creation
取代:
- 將
ENVIRONMENT_NAME
替換為環境的名稱。 LOCATION
改成環境所在的地區。
範例:
gcloud composer environments update example-environment \
--location us-central1 \
--disable-scheduled-snapshot-creation
API
建構 environments.patch
API 要求。
在這項要求中:
在
updateMask
參數中,指定config.recoveryConfig.scheduledSnapshotsConfig.enabled
遮罩來取代enabled
欄位的值。在要求主體中指定新值:
{ "config": { "recoveryConfig": { "scheduledSnapshotsConfig": { "enabled": false } } } }
範例:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.recoveryConfig.scheduledSnapshotsConfig.enabled
{
"config": {
"recoveryConfig": {
"scheduledSnapshotsConfig": {
"enabled": false
}
}
}
}
Terraform
如要停用排定時間的快照,請將 scheduled_snapshots_config
區塊中的 enabled
欄位設為 false
:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
recovery_config {
scheduled_snapshots_config {
enabled = false
}
}
}
範例:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
recovery_config {
scheduled_snapshots_config {
enabled = false
// Other scheduled snapshots parameters
}
}
}