Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
本頁面說明如何設定環境,以便依時程儲存快照。
如要進一步瞭解環境快照的運作方式,以及如何手動儲存快照,請參閱「儲存及載入快照」。
排程快照的運作方式
啟用根據排程建立快照的功能後,Cloud Composer 會定期將環境快照儲存至 Cloud Storage 值區,
如果您手動建立快照,Cloud Composer 預設會將快照儲存在環境的值區中。對於排程快照,建議您將快照儲存在個別值區中。這樣一來,您就能為這個值區設定權限和生命週期設定。一個儲存格可容納多個環境的快照,您也可以建立跨區域備援的儲存格。
事前準備
如要進一步瞭解快照的相關規定和限制,請參閱「儲存及載入快照」一文。
建立用於排程快照的值區
建立值區,用於排程快照。請考量您要如何使用環境快照。如果這是災難復原計畫的一部分,請使用跨區域備援的儲存格,或是位於不同區域的儲存格,這樣一來,即使整個區域發生停機,您也能存取資料。否則,與環境位於相同區域的值區可能更適合,因為在這種情況下,您可以減少在區域間轉移資料的費用。
設定值區的權限
設定下列權限:
環境的服務帳戶必須具備此值區的讀取和寫入權限。舉例來說,Storage 物件管理員角色就具備這類權限。
除非您想從 Google Cloud 控制台查看值區的內容,否則使用者帳戶不需要任何額外的值區權限,才能從值區載入快照。在這種情況下,使用者帳戶必須對儲存桶擁有讀取權限。
設定值區的生命週期設定
為了節省儲存空間費用,您可以設定規則,在一段時間後刪除環境快照。
例如,如要自動刪除超過 30 天的快照,請按照下列步驟操作:
- 為值區設定生命週期設定。
- 指定「刪除物件」動作。
- 選取「Age」(年齡) 和 30 天做為條件。
為環境啟用快照排程
主控台
前往 Google Cloud 控制台的「Environments」頁面。
在環境清單中,按一下環境名稱。「環境詳細資料」頁面隨即開啟。
前往「環境設定」分頁。
在「復原設定」>「快照時間表」中,按一下「編輯」。系統會開啟「Snapshot schedule」(快照排程) 窗格。
在「Snapshot schedule」(快照排程) 窗格中,選取「Create snapshots periodically, according to the specified schedule」(按照指定的排程時間定期建立快照)。
在「排程頻率」下拉式清單中,選取快照的每日、每週或自訂時間間隔。
您可以使用 unix-cron 格式指定自訂排程。例如,如要每 30 分鐘儲存快照,請指定
*/30 * * * *
。在「快照位置」欄位中,選取要儲存快照的資料夾。
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」(快照排程) 窗格。
在「快照排程」窗格中,選取「不要自動建立快照」。
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
}
}
}