日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ACS-HBR-SAPHanaRestorationAutomation

ACS-HBR-SAPHanaRestorationAutomation SAP HANA備份可用性驗證(恢復到新建實例)

模板描述

在已有的SAP HANA實例(源實例)同一VPC下,自動創建單節點SAP HANA目的實例,通過HBR服務將源實例備份數據恢復到目的實例,并檢查恢復后的目的實例狀態立即執行

模板類型

自動化

所有者

Alibaba Cloud

輸入參數

參數名稱

描述

類型

是否必填

默認值

約束

zoneId

期望部署的可用區

String

vpcId

源實例所在專有網絡VPC

String

vSwitchId

目的實例所在交換機

String

sourceClusterId

HBR源實例ID

String

vaultId

HBR備份庫ID

String

HANASID

目的實例SAP HANA SID

String

字符串校驗正則表達式 : ^[A-Z][A-Z0-9][A-Z0-9]$

masterPass

源實例SAP HANA Master賬號密碼

String

字符串校驗正則表達式 : ^(?=.[0-9].)(?=.[A-Z].)(?=.[a-z].)[a-zA-Z][0-9a-zA-Z_@#$]{7,}$

imageId

目的實例的操作系統版本

String

instanceType

目的實例的實例規格

String

privateIpAddress

目的實例私有IP地址

String

字符串校驗正則表達式 : ^((192.168

loginPassword

目的實例root用戶密碼

String

字符串校驗正則表達式 : ^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,}$

dataSize

目的實例的/hana/data大小

String

字符串校驗正則表達式 : (^[2-9]\d{1}$)

logSize

目的實例的/hana/log大小

String

字符串校驗正則表達式 : (^[2-9]\d{1}$)

sharedSize

目的實例的/hana/shared大小

String

字符串校驗正則表達式 : (^[2-9]\d{1}$)

mediaPath

SAP HANA軟件包OSS路徑

String

字符串校驗正則表達式 : ^(oss

dingTalkWebhook

釘釘機器人Webhook地址

String

databaseName

數據庫實例列表

List

['SYSTEMDB@:SYSTEMDB']

customizedImage

使用自定義鏡像

Boolean

False

customizedImageId

自定義鏡像Id

String

""

ECSHostname

目的實例主機名

String

hana001

字符串校驗正則表達式 : ^([a-zA-Z0-9]

HANAInstanceNumber

目的實例SAP HANA實例編號

String

00

字符串校驗正則表達式 : ^([0-8][0-9]

systemDiskCategory

目的實例系統盤類型

String

cloud_ssd

systemDiskSize

目的實例系統盤大小

String

100

字符串校驗正則表達式 : (^2[0-9]$)

dataLogDiskCategory

/hana/data和/hana/log文件系統所在磁盤類型

String

cloud_ssd

sharedDiskCategory

目的實例的/hana/shared文件系統所在磁盤類型

String

cloud_ssd

usrsapDiskCategory

目的實例的/usr/sap文件系統所在磁盤類型

String

cloud_ssd

usrsapSize

目的實例的/usr/sap大小

String

50

字符串校驗正則表達式 : (^[2-9]\d{1}$)

systemUsage

目的實例的SAP HANA系統類型

String

custom

HANASapSidAdmUid

目的實例的SAP HANA sidadm用戶Id

String

1001

字符串校驗正則表達式 : (^[5-9]\d{2}$)

HANASapSysGid

目的實例的SAP HANA sapsys組Id

String

79

字符串校驗正則表達式 : (^\d+$)

userName

目的實例的用戶名

String

SYSTEM

weatherDeleteResource

驗證成功后保留云資源.

Boolean

False

timeout

云資源保留時長(單位:分鐘)

Number

30

輸出參數

參數名稱

描述

類型

Result

String

執行此模板需要的權限策略

關于創建角色并授權,詳情,請參見創建RAM角色并授權

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeAvailableResource",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "hbr:CreateClients",
                "hbr:CreateHanaInstance",
                "hbr:CreateHanaRestore",
                "hbr:DeleteHanaInstance",
                "hbr:DescribeClients",
                "hbr:DescribeHanaBackupSetting",
                "hbr:DescribeHanaBackupsAsync",
                "hbr:DescribeHanaInstances",
                "hbr:DescribeHanaRestores",
                "hbr:DescribeTask",
                "hbr:UpdateHanaBackupSetting"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ros:CreateStack",
                "ros:DeleteStack",
                "ros:GetStack"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "oos:ListExecutions"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳情

ACS-HBR-SAPHanaRestorationAutomation詳情

模板內容

FormatVersion: OOS-2019-06-01
Description:
  en: 'This template uses an existing VPC and SAP HANA instance(source instance) to create a single-node SAP instance(destination instance), restore the source instance backup data to the destination instance through the HBR service, and check the restored destination instance status.'
  zh-cn: 在已有的SAP HANA實例(源實例)同一VPC下,自動創建單節點SAP HANA目的實例,通過HBR服務將源實例備份數據恢復到目的實例,并檢查恢復后的目的實例狀態。
  name-en: ACS-HBR-SAPHanaRestorationAutomation
  name-zh-cn: SAP HANA備份可用性驗證(恢復到新建實例)
Parameters:
  zoneId:
    Type: String
    AssociationProperty: 'ALIYUN::ECS::Instance::ZoneId'
    Label:
      zh-cn: 期望部署的可用區
      en: Availability Zones
    Description:
      zh-cn: '可用區列表請參考, <a href=''http://bestwisewords.com/document_detail/40654.html'' target=''_blank''>地域和可用區信息</a>。'
      en: The Availability Zone where SAP HANA instance will be deployed
  vpcId:
    Type: String
    AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
    Label:
      zh-cn: 源實例所在專有網絡VPC
      en: Source VPC ID
    Description:
      zh-cn: 源實例所在專有網絡VPC
      en: VPC ID of source instance
  vSwitchId:
    Type: String
    AssociationProperty: 'ALIYUN::VPC::VSwitch::VSwitchId'
    Label:
      zh-cn: 目的實例所在交換機
      en: Target VSwitch ID
    Description:
      zh-cn: 目的實例所在交換機
      en: VSwitch ID of destination instance
  sourceClusterId:
    Label:
      zh-cn: HBR源實例Id
      en: Source SAP HANA instance ID
    Description:
      zh-cn: '源實例Id, 需要恢復的SAP HANA備份實例的Id,請在云備份控制臺-ECS應用備份-實例名稱/Id一欄查看。'
      en: 'Source SAP HANA instance ID, can be found in the Cloud Backup Console - ECS Application Backup - Instance Name/ID.'
    Type: String
  vaultId:
    Label:
      zh-cn: HBR備份庫ID
      en: Backup Vault ID
    Description:
      zh-cn: 備份庫的Id
      en: Backup vault ID
    Type: String
  databaseName:
    Label:
      zh-cn: 數據庫實例列表
      en: SAP HANA Database List
    Description:
      zh-cn: 需要恢復備份的SAP HANA數據庫實例列表,格式:<源數據庫名>@<SID>:<目的數據庫名>,多個數據庫實例請以換行分隔。
      en: SAP HANA database list in format of "<Source SAP HANA database name>@<Source SAP HANA system Id>". Separate multiple SAP HANA database with line breaks.
    Type: List
    Default:
      - 'SYSTEMDB@<SID>:SYSTEMDB'
  HANASID:
    Type: String
    ConstraintDescription:
      zh-cn: '必須輸入3個字符,可包含大寫字母或數字,首位必須是大寫字母。'
      en: '3 characters,can including capital letter or number, must starting with capital letter.'
    Label:
      zh-cn: 目的實例SAP HANA SID
      en: SAP HANA  SID
    Description:
      zh-cn: 目的實例SAP HANA SID
      en: Destination instance SAP HANA SID
    AllowedPattern: '^[A-Z][A-Z0-9][A-Z0-9]$'
  masterPass:
    Type: String
    Label:
      zh-cn: 源實例SAP HANA Master賬號密碼
      en: SAP HANA Master Password
    Description:
      zh-cn: 源實例SAP HANA Master賬號密碼
      en: SAP HANA master password
    ConstraintDescription:
      zh-cn: '至少8個字符,至少包含一個數字,大寫字母和小寫字母,可以使用特殊字符(_,@,#,$),但不能以數字和特殊字符開頭。'
      en: 'Must be at least 8 characters with uppercase, lowercase, and numeric values,can use special characters include(_,@,#,$),but can''t staring with number and specical characters.'
    AllowedPattern: '^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)[a-zA-Z][0-9a-zA-Z_@#$]{7,}$'
    NoEcho: true
  imageId:
    Type: String
    Label:
      zh-cn: 目的實例的操作系統版本
      en: Operating System And Version
    Description:
      zh-cn: '目的實例的操作系統版本,該操作系統為CSP官方收費版本,詳情連接:<a href=''https://market.aliyun.com/products/57742013/cmjj00037618.html'' target=''_blank''>SUSE15SP1-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj00036800.html'' target=''_blank''>SUSE12SP4-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj031975.html'' target=''_blank''>SUSE12SP3-SAP</a>。'
      en: 'Operating system and version: <a href=''https://market.aliyun.com/products/57742013/cmjj00037618.html'' target=''_blank''>SUSE15SP1-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj00036800.html'' target=''_blank''>SUSE12SP4-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj031975.html'' target=''_blank''>SUSE12SP3-SAP</a>.'
    AllowedValues:
      - SUSE15SP1-SAP
      - SUSE12SP4-SAP
      - SUSE12SP3-SAP
  customizedImage:
    Type: Boolean
    Label:
      zh-cn: 使用自定義鏡像
      en: Use Custom Image
    Description:
      zh-cn: 是否使用自定義鏡像作為目的實例的鏡像,如果選擇該項,'目的實例的操作系統版本'參數將無效,且需指定'自定義鏡像Id'參數
      en: Use custom image or not
    Default: false
  customizedImageId:
    Type: String
    Label:
      zh-cn: 自定義鏡像Id
      en: Custom Image Id
    Description:
      zh-cn: 使用自定義鏡像創建目的實例,僅'使用自定義鏡像'參數選中時有效
      en: Please enter a custom image id
    Default: ''
  instanceType:
    Type: String
    Label:
      zh-cn: 目的實例的實例規格
      en: Instance Type For SAP HANA Host
    Description:
      zh-cn: '<font color=''blue''><b>1.選擇機型前請先確認當前可用區下該機型是否有貨,部分機型需要提前報備</b></font><br><font color=''blue''><b>2.可選機型列表</b></font><br>[ecs.r5.2xlarge 非認證機型 64G]<br>[ecs.r5.4xlarge 非認證機型 128G]<br>[ecs.c5.8xlarge <font color=''green''>SAP認證機型 64G</font>]<br>[ecs.g5.8xlarge <font color=''green''>SAP認證機型 128G</font>]<br>[ecs.r5.8xlarge <font color=''green''>SAP認證機型 256G</font>]<br>[ecs.r6.13xlarge <font color=''green''>SAP認證機型 384G</font>]<br>[ecs.se1.14xlarge <font color=''green''>SAP認證機型 480G</font>]<br>[ecs.r5.16xlarge <font color=''green''>SAP認證機型 512G</font>]<br>[ecs.re4.20xlarge <font color=''green''>SAP認證機型 960G</font>]<br>[ecs.re4.40xlarge <font color=''green''>SAP認證機型 1920G</font>]<br>[ecs.re4e.40xlarge <font color=''green''>SAP認證機型 3840G</font>]<br><font color=''blue''><b>3.詳情請參考</font> <a href=''http://bestwisewords.com/document_detail/25378.html'' target=''_blank''><b>實例族詳情</b></a>。'
      en: '<font color=''blue''><b>Instance type list</b></font><br> [ecs.r5.2xlarge Non-certified instance type 64G]<br>[ecs.r5.4xlarge Non-certified instance type 128G]<br>[ecs.c5.8xlarge <font color=''green''>SAP certified instance type 64G</font>]<br>[ecs.g5.8xlarge <font color=''green''>SAP certified instance type 128G</font>]<br>[ecs.r5.8xlarge <font color=''green''>SAP certified instance type 256G</font>]<br>[ecs.r6.13xlarge <font color=''green''>SAP certified instance type 384G</font>]<br>[ecs.se1.14xlarge <font color=''green''>SAP certified instance type 480G</font>]<br>[ecs.r5.16xlarge <font color=''green''>SAP certified instance type 512G</font>]<br>[ecs.re4.20xlarge <font color=''green''>SAP certified instance type 960G</font>]<br>[ecs.re4.40xlarge <font color=''green''>SAP certified instance type 1920G</font>]<br>[ecs.re4e.40xlarge <font color=''green''>SAP certified instance type 3840G</font>].'
    AllowedValues:
      - ecs.r5.2xlarge(8vCPUs 64GiB)
      - ecs.r5.4xlarge(16vCPUs 128GiB)
      - ecs.c5.8xlarge(32vCPUs 64GiB)
      - ecs.g5.8xlarge(32vCPUs 128GiB)
      - ecs.r5.8xlarge(32vCPUs 256GiB)
      - ecs.r6.13xlarge(52vCPUs 384GiB)
      - ecs.se1.14xlarge(56vCPUs 480GiB)
      - ecs.r5.16xlarge(64vCPUs 512GiB)
      - ecs.re4.20xlarge(80vCPUs 960GiB)
      - ecs.re4.40xlarge(160vCPUs 1920GiB)
      - ecs.re4e.40xlarge(160vCPUs 3840GiB)
  ECSHostname:
    Type: String
    Label:
      zh-cn: 目的實例主機名
      en: Hostname
    Description:
      zh-cn: 目的實例主機名
      en: SAP HANA ECS hostname
    Default: hana001
    AllowedPattern: '^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-])*([a-zA-Z0-9])$'
    ConstraintDescription:
      zh-cn: 長度為 2-13 個字符,允許使用大小寫字母、數字或連字符(-),但不能以連字符(-)開頭或結尾
      en: 'The length is 2-13 characters,can starting with a capital or lowercase letter,and can contain numbers,or -,but can''t starting with - or end with -.'
  privateIpAddress:
    Type: String
    Label:
      zh-cn: 目的實例私有IP地址
      en: Private IP Address
    Description:
      zh-cn: '目的實例私有IP地址,請注意IP地址的范圍要在交換機網段。'
      en: 'Private IP address for SAP HANA ECS host,please pay attention:IP address should be within VSwitch CIdR Block.'
    ConstraintDescription:
      zh-cn: 請輸入正確的私有IP地址
      en: Please input the right private IP address
    AllowedPattern: '^((192\.168|172\.([1][6-9]|[2]\d|3[01]))(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}|(\D)*10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3})$'
  loginPassword:
    Type: String
    Label:
      zh-cn: 目的實例root用戶密碼
      en: root Passowrd
    Description:
      zh-cn: 目的實例root用戶登錄密碼
      en: SAP HANA ECS root passowrd
    AllowedPattern: '^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,}$'
    ConstraintDescription:
      zh-cn: 8-30個字符,且同時包含三項(大寫字母,小寫字母,數字或特殊符號)
      en: '8-30 characters,include(capital letter,lowercase letter,numbers or special characters).'
    NoEcho: true
  HANAInstanceNumber:
    Type: String
    Label:
      zh-cn: 目的實例SAP HANA實例編號
      en: SAP HANA Instance Number
    Description:
      zh-cn: 目的實例SAP HANA實例編號
      en: SAP HANA instance number
    ConstraintDescription:
      zh-cn: 2位數字,00-97
      en: '2 numbers,00-97.'
    AllowedPattern: '^([0-8][0-9]|9[0-6])$'
    Default: '00'
  systemDiskCategory:
    Default: cloud_ssd
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
    Label:
      zh-cn: 目的實例系統盤類型
      en: System Disk Type
    Description:
      zh-cn: '目的實例系統盤類型,系統盤分類: 高效云盤,SSD云盤。'
      en: 'System disk category: Ultra Disk,SSD disk.'
    Type: String
  systemDiskSize:
    Default: '100'
    Type: String
    Label:
      zh-cn: 目的實例系統盤大小
      en: System Disk Size
    Description:
      zh-cn: 目的實例系統盤大小,單位GB,容量20-500G
      en: '/ file system size,unit:GB,range:20~500G.'
    ConstraintDescription:
      zh-cn: 必須輸入整數,單位GB,容量20-500G
      en: 'Must be an integer,range:20~500G.'
    AllowedPattern: '(^2[0-9]$)|(^[3-9]\d$)|(^[1-4]\d{2}$)|500$'
  dataLogDiskCategory:
    Default: cloud_ssd
    AllowedValues:
      - cloud_essd PL1
      - cloud_essd PL2
      - cloud_essd PL3
      - cloud_ssd
    Label:
      zh-cn: /hana/data和/hana/log文件系統所在磁盤類型
      en: /hana/data And /hana/log File System Disk Category
    Description:
      zh-cn: '1.可選磁盤類型:ESSD云盤PL1、ESSD云盤PL2、ESSD云盤PL3、SSD云盤。<br>2. ESSD 云盤容量越大,可供選擇的性能級別越高(460 GiB 以上可選 PL2,1260 GiB 以上可選 PL3),性能級別越高相應的費用也越高:<ul><li>    cloud_essd PL1(單盤IOPS性能上限5萬)</li><li>    cloud_essd PL2(單盤IOPS性能上限10萬)</li><li>    cloud_essd PL3(單盤IOPS性能上限100萬)</li></ul>如何合理選擇 ESSD 云盤性能級別,<a href=''http://bestwisewords.com/document_detail/122389.html'' target=''view_window''>查看詳情></a>。'
      en: '1. /hana/data and /hana/log file system disk category: ESSD disk,SSD disk.<br>2. The higher the performance level that you can select. For example, PL2 is available for an enhanced SSD of more than 460 GiB and PL3 is available for an enhanced SSD of more than 1260 GiB. A higher performance level indicates a higher fee:<ul><li>    cloud_essd PL1(up to 50,000 IOPS per disk)</li><li>    cloud_essd PL2(up to 100,000 IOPS per disk)</li><li>    cloud_essd PL3(up to 1,000,000 IOPS per disk)</li></ul>For more information about how to select the performance level of an enhanced SSD, <a href=''http://bestwisewords.com/document_detail/122389.html'' target=''view_window''>click here></a>.'
    Type: String
  dataSize:
    Type: String
    Label:
      zh-cn: 目的實例的/hana/data大小
      en: /hana/data File System Size
    Description:
      zh-cn: 目的實例的/hana/data文件系統大小,單位GB,SAP官方推薦:Size >= 1 x RAM
      en: '/hana/data file system size,unit:GB,SAP recommendation:Size >= 1 x RAM.'
    ConstraintDescription:
      zh-cn: 必須輸入整數,容量20-32768G
      en: 'Must be an integer,range:20~32768G.'
    AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
  logSize:
    Type: String
    Label:
      zh-cn: 目的實例的/hana/log大小
      en: /hana/log File System Size
    Description:
      zh-cn: '目的實例的/hana/log文件系統大小,單位GB,SAP官方推薦:[systems ≤ 512GB ] Sizeredolog = 1/2 x RAM;[systems > 512GB ] Sizeredolog(min) = 512GB。'
      en: '/hana/log file system size,unit:GB,SAP recommendation:[systems ≤ 512GB ] Sizeredolog = 1/2 x RAM;[systems > 512GB ] Sizeredolog(min) = 512GB.'
    ConstraintDescription:
      zh-cn: '必須輸入整數,容量20-32768GB。'
      en: 'Must be an integer,range:20~32768G.'
    AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
  sharedDiskCategory:
    Default: cloud_ssd
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
      - cloud_essd
    Label:
      zh-cn: 目的實例的/hana/shared文件系統所在磁盤類型
      en: /hana/shared File System Disk Category
    Description:
      zh-cn: 目的實例的/hana/shared文件系統所在磁盤類型:高效云盤、SSD云盤、ESSD云盤
      en: '/hana/shared file system disk category: Ultra Disk, SSD disk, ESSD disk.'
    Type: String
  sharedSize:
    Type: String
    Label:
      zh-cn: 目的實例的/hana/shared大小
      en: /hana/shared File System Size
    Description:
      zh-cn: 目的實例的/hana/shared文件系統大小,單位GB,SAP官方推薦:Sizeinstallation(single-node) = MIN(1 x RAM; 1 TB)
      en: '/hana/shared file system size,unit:GB,SAP recommendation: Sizeinstallation(single-node) = MIN(1 x RAM; 1 TB).'
    ConstraintDescription:
      zh-cn: 必須輸入整數,容量20-32768GB
      en: 'Must be an integer,range:20~32768G.'
    AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
  usrsapDiskCategory:
    Default: cloud_ssd
    AllowedValues:
      - cloud_efficiency
      - cloud_ssd
      - cloud_essd
    Label:
      zh-cn: 目的實例的/usr/sap文件系統所在磁盤類型
      en: /usr/sap File System Disk Category
    Description:
      zh-cn: 目的實例的/usr/sap文件系統所在磁盤類型:高效云盤、SSD云盤、ESSD云盤
      en: '/usr/sap file system disk category: Ultra Disk, SSD disk, ESSD disk.'
    Type: String
  usrsapSize:
    Type: String
    Label:
      zh-cn: 目的實例的/usr/sap大小
      en: /usr/sap File System Size
    Description:
      zh-cn: 目的實例的/usr/sap文件系統大小,單位GB
      en: '/usr/sap file system size,unit:GB.'
    Default: '50'
    ConstraintDescription:
      zh-cn: 必須輸入整數,容量20-32768G
      en: 'Must be an integer,range:20~32768G.'
    AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
  mediaPath:
    Type: String
    Label:
      zh-cn: SAP HANA軟件包OSS路徑
      en: SAP HANA Software OSS Path
    Description:
      zh-cn: '請從SAP官網下載SAP HANA安裝介質,上傳至SAP系統部署所在的OSS地域,輸入該目錄的路徑,例:oss://{bucket_name}/hana。'
      en: 'Please download the SAP HANA installation media from SAP software download center(Don''t need to extract, the packages are like these:51053381_part1.exe or.rar)and upload them into OSS bucket,input the full path starting with oss://. eg: oss://{bucket_name}/hana.'
    ConstraintDescription:
      zh-cn: 'oss:開頭,例:oss://{bucket_name}/hana。'
      en: 'Starting with oss.eg: oss://{bucket_name}/hana.'
    AllowedPattern: '^(oss|https|http)://[\S\w]+([\S\w])+$'
  systemUsage:
    Type: String
    Label:
      zh-cn: 目的實例的SAP HANA系統類型
      en: SAP HANA System Usage
    Description:
      zh-cn: '目的實例的SAP HANA系統類型,包括custom,development,test,production。'
      en: 'SAP HANA system usage(custom,development,test,production).'
    Default: custom
    AllowedValues:
      - custom
      - development
      - test
      - production
  HANASapSidAdmUid:
    Type: String
    Label:
      zh-cn: 目的實例的SAP HANA sidadm用戶Id
      en: SAP HANA sidadm User Id
    Description:
      zh-cn: '目的實例的sidadm user Id,只能填寫數字,大于500且小于65532,默認值是1001。'
      en: 'sidadm user Id,Only number,range:500~65532,default value:1001.'
    Default: '1001'
    ConstraintDescription:
      zh-cn: '只能填寫數字,大于500且小于65532。'
      en: 'Only number,range:500~65532.'
    AllowedPattern: '(^[5-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-5]\d{4}$)|(^6[0-5][0-5][0-3][0-2]$)'
  HANASapSysGid:
    Type: String
    Label:
      zh-cn: 目的實例的SAP HANA sapsys組Id
      en: SAP HANA sapsys Group Id
    Description:
      zh-cn: '目的實例的sapsys group Id,只能填寫數字,默認值是79。'
      en: 'Sapsys group Id,Only number,default value:79.'
    Default: '79'
    ConstraintDescription:
      zh-cn: 只能填寫數字
      en: Only number
    AllowedPattern: (^\d+$)
  userName:
    Label:
      zh-cn: 目的實例的用戶名
      en: Username of SYSTEMDB
    Description:
      zh-cn: 目的實例的用戶名
      en: Input username of SYSTEMDB.
    Type: String
    Default: SYSTEM
  weatherDeleteResource:
    Label:
      zh-cn: 驗證成功后保留云資源.
      en: Retain Cloud Resources
    Description:
      zh-cn: '是否在驗證備份成功后,保留云資源, 默認不保留。該參數為選中狀態且成功恢復備份時,''云資源保留時長''參數將失效。'
      en: 'Whether to reserve cloud resources after verifying the successful backup, not reserved by default. When this parameter is selected and the backup is successfully restored, the''Cloud Resource Retention Duration'' parameter will be invalid.'
    Type: Boolean
    Default: false
  timeout:
    Label:
      zh-cn: 云資源保留時長(單位:分鐘)
      en: 'Cloud Resource Retention Time (Unit: Minutes)'
    Description:
      zh-cn: 測試完成/失敗后,保留云資源的時長(單位:分鐘)。
      en: 'After the test is completed/failed, the length of time to reserve cloud resources (unit: minutes).'
    Type: Number
    Default: '30'
  dingTalkWebhook:
    Label:
      zh-cn: 釘釘機器人Webhook地址
      en: DingTalk Robot Webhook
    Description:
      zh-cn: '釘釘自定義機器人Webhook地址,用以向釘釘發送測試結果消息和刪除云資源審批消息,更多請瀏覽<a href=''https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq'' target=''_blank''>釘釘自定義機器人</a>。'
      en: 'Sends notification to DingTalk via webhook for asking approval. The execution remains paused until approved or rejected. Please refer https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq for details.'
    Type: String
Tasks:
  - Name: checkHanaInstanceType
    Action: 'ACS::CheckFor'
    Description:
      zh-cn: 查詢SAP HANA實例規格在當前可用區是否可用
      en: Check SAP HANA instance type availability in current available zones
    Properties:
      Service: ECS
      API: DescribeAvailableResource
      Parameters:
        ZoneId: '{{ zoneId }}'
        RegionId: '{{ACS::RegionId}}'
        InstanceType:
          'Fn::Select':
            - 0
            - 'Fn::Split':
                - (
                - '{{ instanceType }}'
        DestinationResource: InstanceType
      PropertySelector: 'AvailableZones.AvailableZone[0].Status'
      DesiredValues:
        - Available
    Retries: 2
  - Name: checkHanaBackupSetting
    Action: 'ACS::CheckFor'
    Description:
      zh-cn: 查詢源實例SAP HANA數據庫備份設置
      en: Check source SAP HANA backup settings
    Properties:
      Service: HBR
      API: DescribeHanaBackupSetting
      Parameters:
        VaultId: '{{ vaultId }}'
        ClusterId: '{{ sourceClusterId }}'
        DatabaseName: 
          'Fn::Select':
            - 0
            - 'Fn::Split':
              - '@'
              - '{{ ACS::TaskLoopItem }}'
      PropertySelector: HanaBackupSetting.CatalogBackupUsingBackint
      DesiredValues:
        - true
    Retries: 2
    Loop:
      Items: '{{ databaseName }}'
      RateControl:
        MaxErrors: 0
        Mode: Concurrency
        Concurrency: 1
  - Name: createStack
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Create a SAP HANA single node stack.
      zh-cn: 創建SAP HANA單節點資源棧
    Properties:
      Service: ROS
      API: CreateStack
      Parameters:
        StackName: 'HBR-{{ACS::ExecutionId}}'
        TimeoutInMinutes: 60
        DisableRollback: true
        Parameters:
          - ParameterKey: ImageId
            ParameterValue: '{{ imageId }}'
          - ParameterKey: CustomizedImageId
            ParameterValue: '{{ customizedImageId }}'
          - ParameterKey: CustomizedImage
            ParameterValue: '{{ customizedImage }}'
          - ParameterKey: ZoneId
            ParameterValue: '{{ zoneId }}'
          - ParameterKey: VpcId
            ParameterValue: '{{ vpcId }}'
          - ParameterKey: VSwitchId
            ParameterValue: '{{ vSwitchId }}'
          - ParameterKey: InstanceType
            ParameterValue: '{{ instanceType }}'
          - ParameterKey: ECSHostname
            ParameterValue: '{{ ECSHostname }}'
          - ParameterKey: PrivateIpAddress
            ParameterValue: '{{ privateIpAddress }}'
          - ParameterKey: LoginPassword
            ParameterValue: '{{ loginPassword }}'
          - ParameterKey: HANASID
            ParameterValue: '{{ HANASID }}'
          - ParameterKey: HANAInstanceNumber
            ParameterValue: '{{ HANAInstanceNumber }}'
          - ParameterKey: SystemDiskCategory
            ParameterValue: '{{ systemDiskCategory }}'
          - ParameterKey: SystemDiskSize
            ParameterValue: '{{ systemDiskSize }}'
          - ParameterKey: DataLogDiskCategory
            ParameterValue: '{{ dataLogDiskCategory }}'
          - ParameterKey: DataSize
            ParameterValue: '{{ dataSize }}'
          - ParameterKey: LogSize
            ParameterValue: '{{ logSize }}'
          - ParameterKey: SharedDiskCategory
            ParameterValue: '{{ sharedDiskCategory }}'
          - ParameterKey: SharedSize
            ParameterValue: '{{ sharedSize }}'
          - ParameterKey: UsrsapDiskCategory
            ParameterValue: '{{ usrsapDiskCategory }}'
          - ParameterKey: UsrsapSize
            ParameterValue: '{{ usrsapSize }}'
          - ParameterKey: MasterPass
            ParameterValue: '{{ masterPass }}'
          - ParameterKey: MediaPath
            ParameterValue: '{{ mediaPath }}'
          - ParameterKey: SystemUsage
            ParameterValue: '{{ SystemUsage }}'
          - ParameterKey: HANASapSidAdmUid
            ParameterValue: '{{ HANASapSidAdmUid }}'
          - ParameterKey: HANASapSysGid
            ParameterValue: '{{ HANASapSysGid }}'
        TemplateURL: 'https://sap-automation-{{ACS::RegionId}}.oss-{{ACS::RegionId}}.aliyuncs.com/Public_V1/HANA/HANA_Single_Node.json'
    Outputs:
      StackId:
        Type: String
        ValueSelector: StackId
  - Name: untilStackReady
    Action: 'ACS::WaitFor'
    OnError: getExecutionFaildMessage
    Description:
      en: Wait the stack status util CREATE_COMPLETE
      zh-cn: 等待資源棧至創建成功狀態
    DelayType: Constant
    Delay: 300
    Retries: 12
    Properties:
      Service: ROS
      API: GetStack
      Parameters:
        StackId: '{{createStack.StackId}}'
      DesiredValues:
        - CREATE_COMPLETE
      StopRetryValues:
        - CREATE_FAILED
        - CHECK_FAILED
        - ROLLBACK_FAILED
        - ROLLBACK_COMPLETE
        - CREATE_ROLLBACK_COMPLETE
        - CREATE_ROLLBACK_FAILED
      PropertySelector: Status
    Outputs:
      HANAServerId:
        Type: String
        ValueSelector: '.Outputs[] | select(.OutputKey == "HANAServerId") | .OutputValue'
      HANAServerLog:
        Type: Json
        ValueSelector: '.Outputs[] | select(.OutputKey == "InstallLog") | .OutputValue'
  - Name: checkHanaServerLog
    Action: 'ACS::CheckFor'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 檢查SAP HANA安裝日志
      en: Check SAP HANA installation log
    Properties:
      Service: ROS
      API: GetStack
      Parameters:
        StackId: '{{createStack.StackId}}'
      PropertySelector: '.Outputs[] | select(.OutputKey == "InstallLog") | .OutputValue'
      DesiredValues:
        - '{"HANANode": "SUCCESS"}'
    Retries: 2
  - Name: createHANAInstance
    Action: 'ACS::ExecuteAPI'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 創建HBR SAP HANA實例
      en: Create HBR SAP HANA instance
    Properties:
      Service: HBR
      API: CreateHanaInstance
      Parameters:
        VaultId: '{{ vaultId }}'
        EcsInstanceId: '{{ untilStackReady.HANAServerId }}'
        Host: '{{ privateIpAddress }}'
        HanaName: '{{ ECSHostname }}'
        InstanceNumber: '{{ HANAInstanceNumber }}'
        UserName: '{{ userName }}'
        Password: '{{ masterPass }}'
        UseSsl: true
    Outputs:
      ClusterId:
        Type: String
        ValueSelector: ClusterId
  - Name: createClients
    Action: 'ACS::ExecuteAPI'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 創建HBR SAP HANA實例客戶端
      en: Create HBR SAP HANA instance client
    Properties:
      Service: HBR
      API: CreateClients
      Parameters:
        VaultId: '{{ vaultId }}'
        AlertSetting: INHERITED
        ClientInfo:
          - instanceId: '{{ untilStackReady.HANAServerId }}'
            accessKeyId: ''
            accessKeySecret: ''
            clusterId: '{{ createHANAInstance.ClusterId }}'
            sourceTypes:
              - HANA
    Outputs:
      TaskId:
        Type: String
        ValueSelector: TaskId
  - Name: waitForCreateClient
    Action: 'ACS::WaitFor'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 等待客戶端創建完成
      en: Wait for the client to be created
    DelayType: Constant
    Delay: 5
    Retries: 15
    Properties:
      Service: HBR
      API: DescribeTask
      Parameters:
        TaskId: '{{ createClients.TaskId }}'
      PropertySelector: Description
      StopRetryValues:
        - completed
      DesiredValues:
        - completed
  - Name: waitForActivateClient
    Action: 'ACS::WaitFor'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 等待HBR客戶端激活完成
      en: Wait for client activation to complete
    Properties:
      Service: HBR
      API: DescribeClients
      Parameters:
        ClusterId: '{{ createHANAInstance.ClusterId }}'
        VaultId: '{{ vaultId }}'
        SourceType: HANA
        ClientType: ECS_AGENT
      PropertySelector: 'Clients.Client[].Status'
      StopRetryValues:
        - ACTIVATED
        - INSTALL_FAILED
      DesiredValues:
        - ACTIVATED
    Retries: 5
    Outputs:
      ClientId:
        Type: String
        ValueSelector: 'Clients.Client[].ClientId'
  - Name: RestoreBuckup
    Action: 'ACS::HBR::RestoreHanaDatabaseBackup'
    OnError: getExecutionFaildMessage
    Description:
      zh-cn: 恢復并驗證備份
      en: Restore and verify backup
    Properties:
      vaultId: '{{ vaultId }}'
      sourceClusterId: '{{ sourceClusterId }}'
      sourceSystemName:
        'Fn::Select':
          - 0
          - 'Fn::Split':
            - ':'
            - '{{ ACS::TaskLoopItem }}'
      clusterId: '{{ createHANAInstance.ClusterId }}'
      databaseName:
        'Fn::Select':
          - 1
          - 'Fn::Split':
            - ':'
            - '{{ ACS::TaskLoopItem }}'
      HANAInstanceServerId: '{{ untilStackReady.HANAServerId }}'
      HANASID: '{{ HANASID }}'
      masterClientId: '{{ waitForActivateClient.ClientId }}'
    Loop:
      Items: '{{ databaseName }}'
      RateControl:
        MaxErrors: 0
        Mode: Concurrency
        Concurrency: 1
  - Name: runCommand
    Action: 'ACS::ECS::RunCommand'
    OnSuccess: DingTalkNotify
    OnError: getExecutionFaildMessage
    Description:
      en: Verify the running status of the SAP HANA instance
      zh-cn: 校驗SAP HANA實例運行狀態
    Properties:
      regionId: '{{ ACS::RegionId }}'
      commandContent:
        'Fn::Join':
          - ''
          - - 'su - '
            - 'Fn::Jq':
                - First
                - .key | ascii_downcase
                - key: '{{ HANASID }}'
            - 'adm -c "sapcontrol -nr '
            - '{{ HANAInstanceNumber }}'
            - ' -function GetProcessList"; if [[ $? -eq 3 ]]; then exit 0;fi'
      instanceId: '{{ untilStackReady.HANAServerId }}'
      commandType: RunShellScript
      timeout: '180'
    Outputs:
      commandOutputs:
        Type: String
        ValueSelector: invocationOutput
  - Name: getExecutionFaildMessage
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Get execution failure information
      zh-cn: 獲取執行失敗信息
    Properties:
      Service: OOS
      API: ListExecutions
      Parameters:
        ExecutionId: '{{ ACS::ExecutionId }}'
    Outputs:
      statusMessage:
        Type: String
        ValueSelector: 'Executions[].StatusMessage'
  - Name: DingTalkNotifyExecutionFailed
    Action: 'ACS::Notify'
    OnSuccess: sleepTask
    Description:
      en: Notification execution failure message
      zh-cn: 通知執行失敗消息
    Properties:
      NotifyType: WebHook
      WebHook:
        URI: '{{ dingTalkWebhook }}'
        Headers:
          Content-Type: application/json
        Content:
          msgtype: markdown
          markdown:
            title: '{{ ACS::CurrentUTCTime }}-HBR自動測試執行失敗報告'
            text:
              'Fn::Join':
                - |+


                - - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試執行失敗報告'
                  - '檢測數據庫:{{ databaseName }}'
                  - '錯誤信息:{{ getExecutionFaildMessage.statusMessage }}'
                  - '**測試將在{{ timeout }}分鐘后自動清理測試云資源,如需保留云資源,請到[OOS控制臺](https://oos.console.aliyun.com/{{ ACS::RegionId }}/execution/detail/{{ ACS::ExecutionId }})取消執行**'
          at:
            atMobiles: []
            isAtAll: true
  - Name: DingTalkNotify
    Action: 'ACS::Notify'
    Description:
      en: Notify test results
      zh-cn: 釘釘通知測試結果
    Properties:
      NotifyType: WebHook
      WebHook:
        URI: '{{ dingTalkWebhook }}'
        Headers:
          Content-Type: application/json
        Content:
          msgtype: markdown
          markdown:
            title: '{{ ACS::CurrentUTCTime }}-HBR自動測試報告'
            text:
              'Fn::Join':
                - |+


                - - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試報告'
                  - 測試結果:SUCCESS
                  - '檢測數據庫:{{ databaseName }}'
                  - '目的實例:{{ ECSHostname }}'
                  - '目的實例Id:{{ untilStackReady.HANAServerId }}'
                  - '**如果您選擇清理云資源,測試將在{{ timeout }}分鐘后自動清理測試云資源,如需保留云資源,請到[OOS控制臺](https://oos.console.aliyun.com/{{ACS::RegionId}}/execution/detail/{{ ACS::ExecutionId }})取消執行**'
          at:
            atMobiles: []
            isAtAll: true
  - Name: whetherDeleteResource
    Action: 'ACS::Choice'
    Properties:
      DefaultTask: sleepTask
      Choices:
        - When: '{{ weatherDeleteResource }}'
          NextTask: 'ACS::END'
  - Name: sleepTask
    Action: 'ACS::Sleep'
    Properties:
      Duration: 'PT{{ timeout }}M'
  - Name: deleteStack
    Action: 'ACS::ExecuteApi'
    OnError: getCleanupFaildMessage
    Description:
      en: Delete the stack
      zh-cn: 刪除資源棧
    Properties:
      Service: ROS
      API: DeleteStack
      Parameters:
        StackId: '{{createStack.StackId}}'
  - Name: describeHanaInstances
    Action: 'ACS::ExecuteAPI'
    OnError: getCleanupFaildMessage
    Description:
      zh-cn: 查詢HBR SAP HANA實例
      en: Query HBR SAP HANA instance
    Properties:
      Service: HBR
      API: DescribeHanaInstances
      Parameters:
        VaultId: '{{ vaultId }}'
    Outputs:
      Hanas:
        Type: Json
        ValueSelector: Hanas
  - Name: whetherDeleteHanaInstances
    Action: 'ACS::Choice'
    Properties:
      DefaultTask: untilStackCleanup
      Choices:
        - When:
            'Fn::Equals':
              - '{{ ECSHostname }}'
              - 'Fn::Jq':
                  - First
                  - '.key.Hana[] | select(.Host == "{{ privateIpAddress }}") | .HanaName'
                  - key: '{{ describeHanaInstances.Hanas }}'
          NextTask: deleteHanaInstance
  - Name: deleteHanaInstance
    Action: 'ACS::ExecuteApi'
    OnError: getCleanupFaildMessage
    Description:
      en: Delete the stack
      zh-cn: 刪除測試SAP HANA實例
    Properties:
      Service: HBR
      API: DeleteHanaInstance
      Parameters:
        VaultId: '{{ vaultId }}'
        ClusterId: '{{ createHANAInstance.ClusterId }}'
        Sid: '{{ HANASID }}'
  - Name: untilStackCleanup
    Action: 'ACS::WaitFor'
    OnError: getCleanupFaildMessage
    OnSuccess: 'ACS::END'
    Description:
      en: Wait the stack status util DELETE_COMPLETE
      zh-cn: 等待資源棧至刪除成功狀態
    DelayType: Constant
    Delay: 300
    Retries: 12
    Properties:
      Service: ROS
      API: GetStack
      Parameters:
        StackId: '{{createStack.StackId}}'
      DesiredValues:
        - DELETE_COMPLETE
      StopRetryValues:
        - DELETE_FAILED
        - DELETE_COMPLETE
      PropertySelector: Status
  - Name: getCleanupFaildMessage
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Get cleanup failure information
      zh-cn: 獲取清理失敗信息
    Properties:
      Service: OOS
      API: ListExecutions
      Parameters:
        ExecutionId: '{{ ACS::ExecutionId }}'
    Outputs:
      statusMessage:
        Type: String
        ValueSelector: 'Executions[].StatusMessage'
  - Name: DingTalkNotifyCleanupFailed
    Action: 'ACS::Notify'
    Description:
      en: Notification cleanup failed
      zh-cn: 清理失敗通知
    Properties:
      NotifyType: WebHook
      WebHook:
        URI: '{{ dingTalkWebhook }}'
        Headers:
          Content-Type: application/json
        Content:
          msgtype: markdown
          markdown:
            title: '{{ ACS::CurrentUTCTime }}-HBR自動測試清理失敗報告'
            text:
              'Fn::Join':
                - |+


                - - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試清理失敗報告'
                  - '檢測數據庫:{{ databaseName }}'
                  - '錯誤信息:{{ getCleanupFaildMessage.statusMessage }}'
                  - '**自動清理云資源失敗,請手動清理**'
          at:
            atMobiles: []
            isAtAll: true
Outputs:
  Result:
    Type: String
    Value: '{{ untilStackReady.HANAServerId }}'