Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁說明如何設定環境,以便依排程儲存快照。
如要進一步瞭解環境快照的運作方式,以及如何手動儲存快照,請參閱「儲存及載入快照」。
排程快照的運作方式
啟用根據排程建立快照的功能後,Cloud Composer 會定期將環境快照儲存至 Cloud Storage 值區。
如果您手動建立快照,Cloud Composer 預設會將快照儲存在環境的值區中。如果是排程快照,建議您將快照儲存在不同的值區。這樣就能為這個 bucket 設定權限和生命週期設定。一個值區可存放多個環境的快照,您也可以建立跨區域備援的值區。
事前準備
如要進一步瞭解快照的相關規定和限制,請參閱「儲存及載入快照」一文。
Cloud Composer 2.0.32 以上版本支援排程快照。2.0.9 以上版本支援環境快照。
建立排程快照的值區
建立 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
}
}
}