使用资源编排服务ROS调用云备份。本文为您介绍如何编写一个资源编排的模板,自动化创建一个云备份的备份库。
支持资源列表
资源编排服务ROS(Resource Orchestration Service)是阿里云提供的一项简化云计算资源管理的服务。开发者和管理员可以编写模板,在模板中定义所需的阿里云资源(例如:ECS 实例、RDS 数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。更多详情请参见什么是资源编排服务。
支持使用资源编排服务ROS调用云备份。编排的资源包括普通资源和数据资源。
普通资源:
ALIYUN::HBR::BackupClients:为ECS实例安装备份客户端
ALIYUN::HBR::RestoreJob:创建恢复任务
ALIYUN::HBR::DbAgent安装数据库备份客户端
ALIYUN::HBR::DbPlan:创建备份计划
ALIYUN::HBR::DbVault:创建镜像备份仓库
ALIYUN::HBR::Vault:创建一个备份仓库
数据资源:
DATASOURCE::HBR::Vaults:查询备份仓库基础信息
权限说明
在本案例中,需要创建的资源:备份库。默认情况下资源编排直接使用当前登录控制台的用户凭证,要求当前用户必须具备以下权限:
AliyunHBRFullAccess: 管理云备份资源的权限。
阿里云账号拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。请根据业务的实际情况按需分配权限后进行接口调用。RAM用户需具备操作云备份资源的权限。具体操作,请参见创建RAM用户进行云备份操作。
操作步骤
登录资源编排ROS控制台,单击顶部导航栏地域下拉框,选择您需要的地域。
单击左侧菜单栏中的资源栈,选择创建资源栈 > 使用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
的备份库。