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

CloudOps Orchestration Service:PolarDB クラスタの IP ホワイトリストを変更する ECI ライフサイクルフック

最終更新日:Jan 17, 2025

テンプレート名

ACS-ESS-ECILifeCycleModifyPolarDBIPWhitelist

今すぐ実行

テンプレートの説明

ライフサイクルフックを使用して、PolarDB クラスタの IP アドレスホワイトリストにエラスティックコンテナインスタンスの IP アドレスを追加または削除します。

テンプレートの種類

自動化

所有者

Alibaba Cloud

入力パラメーター

パラメーター

説明

種類

必須

デフォルト値

制限

dbClusterId

PolarDB クラスタの ID。

String

はい

modifyMode

IP アドレスホワイトリストを変更するために使用されるメソッド。

String

はい

regionId

リージョン ID。

String

いいえ

${regionId}

instanceIds

エラスティックコンテナインスタンスの ID。

List

いいえ

['${instanceIds}']

lifecycleHookId

ライフサイクルフック ID。

String

いいえ

${lifecycleHookId}

lifecycleActionToken

インスタンスに関連付けられている特定のスケーリングアクティビティのトークン。

String

いいえ

${lifecycleActionToken}

OOSAssumeRole

CloudOps Orchestration Service (OOS) によって引き受けられる Resource Access Management (RAM) ロール。

文字列

いいえ

OOSServiceRole

出力パラメーター

パラメーター

説明

タイプ

ipAddresses

リスト

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

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "eci:DescribeContainerGroups"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "polardb:DescribeDBClusterAccessWhitelist",
                "polardb:ModifyDBClusterAccessWhitelist"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

参照

ACS-ESS-ECILifeCycleModifyPolarDBIPWhitelist

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  en: Use lifecycleHook to modify the IP whitelist of the PolarDB instance
  zh-cn: ECI使用生命周期挂钩设置PolarDB实例的IP白名单
  name-en: ACS-ESS-ECILifeCycleModifyPolarDBIPWhitelist
  name-zh-cn: ECI使用生命周期挂钩设置PolarDB实例的IP白名单
  categories:
    - elastic_manage
Parameters:
  dbClusterId:
    Label:
      en: DBClusterId
      zh-cn: PolarDB クラスタ ID
    Type: String
  modifyMode:
    Label:
      en: ModifyMode
      zh-cn: IP ホワイトリストの変更方法
    Description:
      en: The method to modify the IP whitelist, Delete is used for elastic contraction activities, and Append is used for elastic expansion activities
      zh-cn: IP ホワイトリストの変更方法。Append は弾性拡張アクティビティに使用され、Delete は弾性縮小アクティビティに使用されます。
    Type: String
    AllowedValues:
      - Append
      - Delete
  regionId:
    Label:
      en: RegionId
      zh-cn: リージョン ID
    Description:
      en: The ID of region
      zh-cn: リージョン ID。Elastic Compute Service システムのデフォルト値 ${regionId} を使用してください。
    Type: String
    Default: '${regionId}'
  instanceIds:
    Label:
      en: InstanceIds
      zh-cn: ECS インスタンス ID リスト
    Description:
      en: The ID list of the ECS instance
      zh-cn: ECS インスタンス ID リスト。Elastic Compute Service システムのデフォルト値 ["${instanceId}"] を使用してください。
    Type: List
    Default:
      - '${instanceIds}'
  lifecycleHookId:
    Label:
      en: LifecycleHookId
      zh-cn: ライフサイクルフック ID
    Description:
      en: The ID of the lifecycle hook
      zh-cn: ライフサイクルフック ID。Elastic Compute Service システムのデフォルト値 ${lifecycleHookId} を使用してください。
    Type: String
    Default: '${lifecycleHookId}'
  lifecycleActionToken:
    Label:
      en: LifecycleActionToken
      zh-cn: インスタンスに関連付けられた特定のスケーリングアクティビティのトークン
    Description:
      en: The token that indicates a specific scaling activity associated with an instance
      zh-cn: インスタンスに関連付けられた特定のスケーリングアクティビティを示すトークン。Elastic Compute Service システムのデフォルト値 ${lifecycleActionToken} を使用してください。
    Type: String
    Default: '${lifecycleActionToken}'
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS が使用する RAM ロール
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstanceIpAddress
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Get  ip address of ECI instance
      zh-cn: ECI インスタンスの IP アドレスを取得する
    OnError: CompleteLifecycleActionForAbandon
    Properties:
      Service: ECI
      API: DescribeContainerGroups
      Parameters:
        RegionId: '{{ regionId }}'
        ContainerGroupIds: '{{ instanceIds }}'
    Outputs:
      ipAddress:
        Type: List
        ValueSelector: '.ContainerGroups[].IntranetIp'
  - Name: modifyPolarDBIPWhitelist
    Action: 'ACS::ESS::ModifyPolarDBIPWhitelist'
    Description:
      en: Modify the ip whitelist
      zh-cn: IP ホワイトリストを変更する
    OnError: CompleteLifecycleActionForAbandon
    OnSuccess: CompleteLifecycleActionForContinue
    Properties:
      regionId: '{{ regionId }}'
      dbClusterId: '{{ dbClusterId }}'
      modifyMode: '{{ modifyMode }}'
      securityIp: '{{ ACS::TaskLoopItem }}'
    Loop:
      Items: '{{ getInstanceIpAddress.ipAddress }}'
  - Name: CompleteLifecycleActionForContinue
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Modify lifecycle action for continue
      zh-cn: スケーリングアクティビティの待機状態を続行に変更する
    OnSuccess: 'ACS::END'
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: CONTINUE
  - Name: CompleteLifecycleActionForAbandon
    Action: 'ACS::ExecuteAPI'
    Description:
      en: Complete lifecycle action for Abandon
      zh-cn: スケーリングアクティビティの待機状態を破棄に変更する
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: ABANDON
Outputs:
  ipAddresses:
    Type: List
    Value: '{{ getInstanceIpAddress.ipAddress}}'