使用Resource Orchestration Service服務ROS調用Cloud Backup。本文為您介紹如何編寫一個Resource Orchestration Service的模板,自動化建立一個Cloud Backup的備份庫。
支援資源清單
Resource Orchestration Service服務ROS(Resource Orchestration Service)是阿里雲提供的一項簡化雲端運算資源管理的服務。開發人員和管理員可以編寫模板,在模板中定義所需的阿里雲資源(例如:ECS 執行個體、RDS 資料庫執行個體)、資源間的依賴關係等。ROS的編排引擎將根據模板自動完成所有資源的建立和配置,實現自動化部署及營運。更多詳情請參見什麼是Resource Orchestration Service服務。
支援使用Resource Orchestration Service服務ROS調用Cloud Backup。編排的資源套件括普通資源和資料資源。
普通資源:
ALIYUN::HBR::BackupClients:為ECS執行個體安裝備份用戶端
ALIYUN::HBR::RestoreJob:建立恢複任務
ALIYUN::HBR::DbAgent安裝Database Backup用戶端
ALIYUN::HBR::DbPlan:建立備份計劃
ALIYUN::HBR::DbVault:建立鏡像備份倉庫
ALIYUN::HBR::Vault:建立一個備份倉庫
資料資源:
DATASOURCE::HBR::Vaults:查詢備份倉庫基礎資訊
許可權說明
在本案例中,需要建立的資源:備份庫。預設情況下Resource Orchestration Service直接使用當前登入控制台的使用者憑證,要求目前使用者必須具備以下許可權:
AliyunHBRFullAccess: 管理Cloud Backup資源的許可權。
阿里雲帳號擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM使用者進行API訪問或日常營運。請根據業務的實際情況按需分配許可權後進行介面調用。RAM使用者需具備操作雲備份資源的許可權。具體操作,請參見建立RAM使用者進行雲備份操作。
操作步驟
登入Resource Orchestration Service控制台,單擊頂部導覽列地區下拉框,選擇您需要的地區。
單擊左側功能表列中的資源棧,選擇建立資源棧 > 使用ROS。
指定模板:選中選擇已有模板。
模板錄入方式:選中輸入模板。
模板內容選擇ROS,並輸入代碼。
建立備份庫的文法、說明及樣本,請參見ALIYUN::HBR::Vault。該樣本中,建立一個名為
test-vault
的備份庫。YAML
格式ROSTemplateFormatVersion: '2015-09-01' Parameters: VaultName: Description: The name of the backup vault. The name must be 1 to 64 characters in length. MaxLength: 64 MinLength: 1 Type: String Default: test-valut Resources: ExtensionResource: Properties: VaultName: Ref: VaultName VaultType: STANDARD Type: ALIYUN::HBR::Vault Outputs: BackupPlanStatistics: Description: The statistics of backup plans that use the backup vault. Value: Fn::GetAtt: - ExtensionResource - BackupPlanStatistics BytesDone: Description: 'The amount of data that is backed up. Unit: bytes.' Value: Fn::GetAtt: - ExtensionResource - BytesDone CreateTime: Description: 'The time when the backup vault was created. This value is a UNIX timestamp. Unit: seconds.' Value: Fn::GetAtt: - ExtensionResource - CreateTime Dedup: Description: Indicates whether the deduplication feature is enabled. Value: Fn::GetAtt: - ExtensionResource - Dedup Description: Description: The description of the backup vault. Value: Fn::GetAtt: - ExtensionResource - Description IndexAvailable: Description: Indicates whether indexes are available. Indexes are available when they are not being updated. Value: Fn::GetAtt: - ExtensionResource - IndexAvailable IndexLevel: Description: 'The index level. - **OFF**: No indexes are created. - **META**: Metadata indexes are created. - **ALL**: Full-text indexes are created.' Value: Fn::GetAtt: - ExtensionResource - IndexLevel IndexUpdateTime: Description: The time when the index was updated. Value: Fn::GetAtt: - ExtensionResource - IndexUpdateTime LatestReplicationTime: Description: 'The time when the last remote backup was synchronized. This value is a UNIX timestamp. Unit: seconds.' Value: Fn::GetAtt: - ExtensionResource - LatestReplicationTime PaymentType: Description: PaymentType. Value: Fn::GetAtt: - ExtensionResource - PaymentType RedundancyType: Description: 'The data redundancy type of the backup vault. Valid values: - **LRS**: Locally redundant storage (LRS) is enabled for the backup vault. HBR stores the copies of each object on multiple devices of different facilities in the same zone. This way, HBR ensures data durability and availability even if hardware failures occur. - **ZRS**: Zone-redundant storage (ZRS) is enabled for the backup vault. HBR uses the multi-zone mechanism to distribute data across three zones within the same region. If a zone fails, the data that is stored in the other two zones is still accessible.' Value: Fn::GetAtt: - ExtensionResource - RedundancyType Replication: Description: 'Indicates whether the backup vault is a remote backup vault. Valid values: - **true**: The backup vault is a remote backup vault. - **false**: The backup vault is an on-premises backup vault.' Value: Fn::GetAtt: - ExtensionResource - Replication ReplicationProgress: Description: The progress of data synchronization from the backup vault to the mirror vault. Value: Fn::GetAtt: - ExtensionResource - ReplicationProgress ReplicationSourceRegionId: Description: The ID of the region where the remote backup vault resides. Value: Fn::GetAtt: - ExtensionResource - ReplicationSourceRegionId ReplicationSourceVaultId: Description: The ID of the source vault that corresponds to the remote backup vault. Value: Fn::GetAtt: - ExtensionResource - ReplicationSourceVaultId ResourceGroupId: Description: The ID of the resource group. Value: Fn::GetAtt: - ExtensionResource - ResourceGroupId Retention: Description: 'The retention period of the backup vault. Unit: days.' Value: Fn::GetAtt: - ExtensionResource - Retention SearchEnabled: Description: Indicates whether the backup search feature is enabled. Value: Fn::GetAtt: - ExtensionResource - SearchEnabled SourceTypes: Description: The information about the data source. Value: Fn::GetAtt: - ExtensionResource - SourceTypes StorageSize: Description: 'The usage of the backup vault. Unit: bytes.' Value: Fn::GetAtt: - ExtensionResource - StorageSize Tags: Description: The tags of the backup vault. Value: Fn::GetAtt: - ExtensionResource - Tags TrialInfo: Description: The free trial information. Value: Fn::GetAtt: - ExtensionResource - TrialInfo UpdatedTime: Description: 'The time when the backup vault was updated. This value is a UNIX timestamp. Unit: seconds.' Value: Fn::GetAtt: - ExtensionResource - UpdatedTime VaultId: Description: The ID of the backup vault. Value: Fn::GetAtt: - ExtensionResource - VaultId VaultName: Description: The name of the backup vault. Value: Fn::GetAtt: - ExtensionResource - VaultName VaultStatusMessage: Description: 'The status message that is returned when the backup vault is in the ERROR state. This parameter is available only for remote backup vaults. Valid values: - **UNKNOWN_ERROR*: An unknown error occurs. - **SOURCE_VAULT_ALREADY_HAS_REPLICATION**: A mirror vault is configured for the source vault.' Value: Fn::GetAtt: - ExtensionResource - VaultStatusMessage VaultStorageClass: Description: 'The storage type of the backup vault. Valid value: **STANDARD**, which indicates standard storage.' Value: Fn::GetAtt: - ExtensionResource - VaultStorageClass VaultType: Description: 'The type of the backup vault. Valid value: **STANDARD**, which indicates a standard backup vault.' Value: Fn::GetAtt: - ExtensionResource - VaultType
JSON
格式{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { "VaultName": { "Description": "The name of the backup vault. The name must be 1 to 64 characters in length.", "MaxLength": 64, "MinLength": 1, "Type": "String", "Default": "test-valut" } }, "Resources": { "ExtensionResource": { "Properties": { "VaultName": { "Ref": "VaultName" }, "VaultType": "STANDARD" }, "Type": "ALIYUN::HBR::Vault" } }, "Outputs": { "BackupPlanStatistics": { "Description": "The statistics of backup plans that use the backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "BackupPlanStatistics" ] } }, "BytesDone": { "Description": "The amount of data that is backed up. Unit: bytes.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "BytesDone" ] } }, "CreateTime": { "Description": "The time when the backup vault was created. This value is a UNIX timestamp. Unit: seconds.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "CreateTime" ] } }, "Dedup": { "Description": "Indicates whether the deduplication feature is enabled.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "Dedup" ] } }, "Description": { "Description": "The description of the backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "Description" ] } }, "IndexAvailable": { "Description": "Indicates whether indexes are available. Indexes are available when they are not being updated.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "IndexAvailable" ] } }, "IndexLevel": { "Description": "The index level.\n- **OFF**: No indexes are created.\n- **META**: Metadata indexes are created.\n- **ALL**: Full-text indexes are created.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "IndexLevel" ] } }, "IndexUpdateTime": { "Description": "The time when the index was updated.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "IndexUpdateTime" ] } }, "LatestReplicationTime": { "Description": "The time when the last remote backup was synchronized. This value is a UNIX timestamp. Unit: seconds.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "LatestReplicationTime" ] } }, "PaymentType": { "Description": "PaymentType.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "PaymentType" ] } }, "RedundancyType": { "Description": "The data redundancy type of the backup vault. Valid values:\n- **LRS**: Locally redundant storage (LRS) is enabled for the backup vault. HBR stores the copies of each object on multiple devices of different facilities in the same zone. This way, HBR ensures data durability and availability even if hardware failures occur.\n- **ZRS**: Zone-redundant storage (ZRS) is enabled for the backup vault. HBR uses the multi-zone mechanism to distribute data across three zones within the same region. If a zone fails, the data that is stored in the other two zones is still accessible.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "RedundancyType" ] } }, "Replication": { "Description": "Indicates whether the backup vault is a remote backup vault. Valid values:\n- **true**: The backup vault is a remote backup vault.\n- **false**: The backup vault is an on-premises backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "Replication" ] } }, "ReplicationProgress": { "Description": "The progress of data synchronization from the backup vault to the mirror vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "ReplicationProgress" ] } }, "ReplicationSourceRegionId": { "Description": "The ID of the region where the remote backup vault resides.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "ReplicationSourceRegionId" ] } }, "ReplicationSourceVaultId": { "Description": "The ID of the source vault that corresponds to the remote backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "ReplicationSourceVaultId" ] } }, "ResourceGroupId": { "Description": "The ID of the resource group.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "ResourceGroupId" ] } }, "Retention": { "Description": "The retention period of the backup vault. Unit: days.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "Retention" ] } }, "SearchEnabled": { "Description": "Indicates whether the backup search feature is enabled.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "SearchEnabled" ] } }, "SourceTypes": { "Description": "The information about the data source.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "SourceTypes" ] } }, "StorageSize": { "Description": "The usage of the backup vault. Unit: bytes.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "StorageSize" ] } }, "Tags": { "Description": "The tags of the backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "Tags" ] } }, "TrialInfo": { "Description": "The free trial information.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "TrialInfo" ] } }, "UpdatedTime": { "Description": "The time when the backup vault was updated. This value is a UNIX timestamp. Unit: seconds.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "UpdatedTime" ] } }, "VaultId": { "Description": "The ID of the backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "VaultId" ] } }, "VaultName": { "Description": "The name of the backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "VaultName" ] } }, "VaultStatusMessage": { "Description": "The status message that is returned when the backup vault is in the ERROR state. This parameter is available only for remote backup vaults. Valid values:\n- **UNKNOWN_ERROR*: An unknown error occurs.\n- **SOURCE_VAULT_ALREADY_HAS_REPLICATION**: A mirror vault is configured for the source vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "VaultStatusMessage" ] } }, "VaultStorageClass": { "Description": "The storage type of the backup vault. Valid value: **STANDARD**, which indicates standard storage.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "VaultStorageClass" ] } }, "VaultType": { "Description": "The type of the backup vault. Valid value: **STANDARD**, which indicates a standard backup vault.", "Value": { "Fn::GetAtt": [ "ExtensionResource", "VaultType" ] } } } }
單擊建立,執行資源棧。
輸出結果。
建立完成後,您可以通過OpenAPI、SDK或者在雲備份控制台,可以查看到名為
test-vault
的備份庫。