すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:ACS-SAP-SAPAutoScaling

最終更新日:Jan 17, 2025

テンプレート名

ACS-SAP-SAPAutoScaling

今すぐ実行

テンプレートの説明

既存の Systems、Applications、and Products(SAP)システムのプライマリ アプリケーション サーバ(PAS)に基づいて、オートスケーリンググループを作成し、自動または手動で Elastic Compute Service(ECS)インスタンスを追加し、追加アプリケーション サーバ(AAS)としてデプロイします。 AAS は、SAP ログオングループ(SMLG)に自動的に参加します。

テンプレートの種類

自動

所有者

Alibaba Cloud

入力パラメータ

パラメータ

説明

種類

必須

デフォルト値

制限

PASInstanceId

PAS インスタンス ID。

Json

はい

RootPassword

ルートユーザーのパスワード。

String

はい

文字列検証の正規表現: ^{{oos-secret:.*$

SAPSID

SAP システムのシステム ID(SID)。

String

はい

Username

SAP システムのユーザー名。

String

はい

UserPassword

SAP システムのユーザーパスワード。

String

はい

文字列検証の正規表現: ^{{oos-secret:.*$

ClientNumber

SAP CLIENT

String

はい

AASCount

追加できる AAS の数。

Number

はい

KeyPairName

キーペア名。

String

はい

UsrsapDiskSize

/usr/sap ファイルシステムのサイズ。

String

はい

SwapDiskSize

スワップサイズ。

String

はい

AASInstanceId

AAS インスタンス ID。

Json

いいえ

{'Type': 'ResourceIds', 'ResourceIds': [''], 'RegionId': '{{ ACS::RegionId }}'}

ClassName

SMLG の名前。

String

いいえ

SPACE

CpuTargetValue

想定される平均 CPU 使用率。

String

いいえ

80

Cooldown

別のスケーリング操作を実行できるようになるまでに経過する必要がある最短時間間隔(秒)。

Number

いいえ

300

出力パラメータ

パラメータ

説明

種類

ScalingGroupId

String

テンプレートを実行するために必要な権限ポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ros:CreateStack",
                "ros:GetStack"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

参照

詳細については、GitHub の ACS-SAP-SAPAutoScaling をご参照ください。監視タスクを管理する

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  en: ''
  name-en: ACS-SAP-SAPAutoScaling
Parameters:
  PASInstanceId:
    Type: Json
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
    Description:
      en: Please select the ECS where the existing SAP AS ABAP system PAS is located
    Label:
      en: PASInstanceId
  AASInstanceId:
    Type: Json
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
    Description:
      en: Please select the ECS where the existing SAP AS ABAP system AAS is located. The CPU load of the selected instance will also be used to calculate the average CPU usage. If there is no other AAS, or the existing AAS and PAS are in the same ECS instance, you do not need to select
    Label:
      en: AASInstanceId
    Default: 
      Type: ResourceIds
      ResourceIds:
        - ""
      RegionId: '{{ ACS::RegionId }}'
  RootPassword:
    Type: String
      en: The password of the root user of the instance where the PAS is located. To ensure data security, only the encryption parameter function of the parameter warehouse is supported. Please click the button on the right side of the input box to create and select the encryption parameter. For more details, please refer to <a href='https://www.alibabacloud.com/help/en/oos/getting-started/manage-encryption-parameters' target='_blank'>Create encryption parameters</a> and <a href='https://www.alibabacloud.com/help/en/oos/getting-started/use-encryption-parameters-for-template-executions' target='_blank'>Use encryption parameters</a>
    Label:
      en: RootPassword
    AllowedPattern: '^\{\{oos-secret:.*$'
  SAPSID:
    Type: String
    Label:
      en: SAPSID
  Username:
    Type: String
    Description:
      en: SAP AS ABAP system SAP GUI login user name
    Label:
      en: Username
  UserPassword:
    Type: String
    Description:
      en: The login user password of SAP GUI, to ensure data security, only supports the encryption parameter function of the parameter warehouse. Please click the button on the right side of the input box to create and select the encryption parameter. For more details, please refer to <a href='https://www.alibabacloud.com/help/en/oos/getting-started/manage-encryption-parameters' target='_blank'>Create encryption parameters</a> and <a href='https://www.alibabacloud.com/help/en/oos/getting-started/use-encryption-parameters-for-template-executions' target='_blank'>Use encryption parameters</a>
    Label:
      en: UserPassword
    AllowedPattern: '^\{\{oos-secret:.*$'
  ClientNumber:
    Type: String
    Description:
      en: Login Client of SAP GUI, such as 800, 600
    Label:
      zh-cn: SAP CLIENT
      en: ClientNumber
  ClassName:
    Type: String
    Description:
      en: SMLG login group name. The extended AAS will be automatically added to the SMLG login group. If it is not filled in, it will be automatically added to the default 'SPACE' group. If the SMLG group is not set, it is not required to fill in. To facilitate and flexibly adjust the groups that AAS joins, it is recommended that you use <a href='https://www.alibabacloud.com/help/en/oos/getting-started/use-encryption-parameters-for-template-executions' target='_blank'>encryption parameters</a>
    Label:
      en: ClassName
    Default: 'SPACE'
  AASCount:
    Type: Number
    Label:
      en: AASCount
    MinValue: 1
    MaxValue: 2000
  CpuTargetValue:
    Type: String
    Description:
      en: The expected average CPU usage of the ECS where the PAS and AAS are located. Average CPU usage = (the ECS instance where the PAS is located + the ECS instance where the added AAS is located + the ECS instance where the automatically expanded AAS is located) the sum of the CPU utilization / the total number of CPU cores in all instances x100 %. The actual average CPU usage is counted every minute. When the actual value exceeds the expected value three times in a row, the automatic expansion AAS action will be triggered. If you need to customize the statistics period and trigger times, please click the <a href='https://ess.console.aliyun.com/#/v3/welcome' target='_blank'> elastic scaling console after the execution is completed. </a>Add the corresponding alarm task. For details, please refer to <a href='https://www.alibabacloud.com/help/en/auto-scaling/user-guide/manage-event-triggered-tasks' target='_blank'>Create an alarm task</a>
    Label:
      en: CpuTargetValue
    Default: 80
  Cooldown:
    Type: Number
    Description:
      en: The interval for triggering automatic expansion of AAS, in seconds. For example, if the specified interval is 300 seconds, within 300 seconds after expanding an AAS, even if the average CPU usage exceeds the 'expected average CPU usage', the expansion action will not be triggered again
    Label:
      en: Cooldown
    Default: 300
    MinValue: 0
    MaxValue: 86400
  KeyPairName:
    Type: String
    Description: 
      en: The name of the key pair bound to the ECS instance where the extended AAS resides. It is used to log in to the ECS instance. Please pre-register in the <a href='https://ecs.console.alibabacloud.com/#/keyPair/region/' target ='_blank'>Key Pair Console</a>Create and manage key pairs
    Label:
      en: KeyPairName
  UsrsapDiskSize:
    Type: String
    Description:
      en: Size of the '/usr/sap' file system of the ECS instance where the extended AAS resides, in GB
    Label:
      en: UsrsapDiskSize
  SwapDiskSize:
    Type: String
    Description:
      en: Size of the swap partition of the ECS instance where the extended AAS resides, in GB
    Label:
      en: SwapDiskSize
Tasks:
  - Name: getPASInstance
    Action: 'ACS::SelectTargets'
    Properties:
      ResourceType: 'ALIYUN::ECS::Instance'
      Filters:
        - '{{ PASInstanceId }}'
    Outputs:
      PASInstanceId:
        ValueSelector: 'Instances.Instance[0].InstanceId'
        Type: String
      VSwitchId:
        ValueSelector: 'Instances.Instance[0].VpcAttributes.VSwitchId'
        Type: String
      PASIP:
        ValueSelector: 'Instances.Instance[0].VpcAttributes.PrivateIpAddress.IpAddress[0]'
        Type: String
  - Name: getAASInstance
    Action: 'ACS::SelectTargets'
    Properties:
      ResourceType: 'ALIYUN::ECS::Instance'
      Filters:
        - '{{ AASInstanceId }}'
    Outputs:
      AASInstanceId:
        ValueSelector: 'Instances.Instance[].InstanceId'
        Type: List
  - Name: createStack
    Action: 'ACS::ExecuteAPI'
    Description:
      en: 'Create scaling group, scaling rule, scaling configuration and lifecycle hook.'
    Properties:
      Service: ROS
      API: CreateStack
      Parameters:
        StackName: 'AutoScaling-{{ACS::ExecutionId}}'
        TimeoutInMinutes: 10
        DisableRollback: true
        Parameters:
          - ParameterKey: ClassName
            ParameterValue: '{{ ClassName }}'
          - ParameterKey: ClientNumber
            ParameterValue: '{{ ClientNumber }}'
          - ParameterKey: UserPassword
            ParameterValue: '{{ UserPassword }}'
          - ParameterKey: Username
            ParameterValue: '{{ Username }}'
          - ParameterKey: SAPSID
            ParameterValue: '{{ SAPSID }}'
          - ParameterKey: PASInstanceId
            ParameterValue: '{{ getPASInstance.PASInstanceId }}'
          - ParameterKey: ExistingAASInstances
            ParameterValue: 
              'Fn::If':
                - 'Fn::Equals':
                  - []
                  - '{{ getAASInstance.AASInstanceId }}'
                - '[]'
                - 'Fn::Jq':
                  - First
                  - 'tostring'
                  - '{{ getAASInstance.AASInstanceId }}'
          - ParameterKey: RootPassword
            ParameterValue: '{{ RootPassword }}'
          - ParameterKey: PASIP
            ParameterValue: '{{ getPASInstance.PASIP }}'
          - ParameterKey: VSwitchId
            ParameterValue: '{{ getPASInstance.VSwitchId }}'
          - ParameterKey: AASCount
            ParameterValue: '{{ AASCount }}'
          - ParameterKey: Cooldown
            ParameterValue: '{{ Cooldown }}'
          - ParameterKey: CpuTargetValue
            ParameterValue: '{{ CpuTargetValue }}'
          - ParameterKey: UsrsapDiskSize
            ParameterValue: '{{ UsrsapDiskSize }}'
          - ParameterKey: SwapDiskSize
            ParameterValue: '{{ SwapDiskSize }}'
          - ParameterKey: KeyPairName
            ParameterValue: '{{ KeyPairName }}'
        TemplateURL: 'http://ros-template.cn-hangzhou.oss.aliyun-inc.com/S4HANA_Auto_Scaling.json'
    Outputs:
      StackId:
        Type: String
        ValueSelector: StackId
  - Name: untilStackReady
    Action: 'ACS::WaitFor'
    Description:
      en: Wait the stack status util CREATE_COMPLETE
    Retries: 10
    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:
      ScalingGroupId:
        Type: String
        ValueSelector: '.Outputs[] | select(.OutputKey == "ScalingGroupId") | .OutputValue'
Outputs:
  ScalingGroupId:
    Type: String
    Value: '{{ untilStackReady.ScalingGroupId }}'