资源编排ROS集成示例

使用资源编排服务ROS调用云备份。本文为您介绍如何编写一个资源编排的模板,自动化创建一个云备份的备份库。

支持资源列表

资源编排服务ROS(Resource Orchestration Service)是阿里云提供的一项简化云计算资源管理的服务。开发者和管理员可以编写模板,在模板中定义所需的阿里云资源(例如:ECS 实例、RDS 数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。更多详情请参见什么是资源编排服务

支持使用资源编排服务ROS调用云备份。编排的资源包括普通资源和数据资源。

权限说明

在本案例中,需要创建的资源:备份库。默认情况下资源编排直接使用当前登录控制台的用户凭证,要求当前用户必须具备以下权限:

  • AliyunHBRFullAccess: 管理云备份资源的权限。

阿里云账号拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维。请根据业务的实际情况按需分配权限后进行接口调用。RAM用户需具备操作云备份资源的权限。具体操作,请参见创建RAM用户进行云备份操作

操作步骤

  1. 登录资源编排ROS控制台,单击顶部导航栏地域下拉框,选择您需要的地域。

  2. 单击左侧菜单栏中的资源栈,选择创建资源栈 > 使用ROS

    • 指定模板:选中选择已有模板

    • 模板录入方式:选中输入模板

  3. 模板内容选择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"
            ]
          }
        }
      }
    }
  4. 单击创建,执行资源栈。

  5. 输出结果。

    image

  6. 创建完成后,您可以通过OpenAPI、SDK或者在云备份控制台,可以查看到名为test-vault的备份库。image