テンプレート名
ACS-ESS-LifeCycleModifyPolarDBIPWhitelist
テンプレートの説明
ライフサイクルフックを使用して、PolarDB クラスターの IP アドレスホワイトリストを設定します。
テンプレートタイプ
自動
所有者
Alibaba Cloud
入力パラメーター
|
パラメーター |
説明 |
タイプ |
必須 |
デフォルト値 |
制限 |
|
dbClusterId |
PolarDB クラスターの ID です。 |
String |
はい |
||
|
modifyMode |
IP アドレスホワイトリストを変更する方法です。 |
String |
はい |
||
|
regionId |
リージョン ID です。 |
String |
いいえ |
${regionId} |
|
|
instanceIds |
Elastic Compute Service (ECS) インスタンスの ID リストです。 |
List |
いいえ |
['${instanceIds}'] |
|
|
lifecycleHookId |
ライフサイクルフックの ID です。 |
String |
いいえ |
${lifecycleHookId} |
|
|
lifecycleActionToken |
インスタンスに関連付けられた特定のスケーリングアクティビティのトークンです。 |
String |
いいえ |
${lifecycleActionToken} |
|
|
OOSAssumeRole |
CloudOps Orchestration Service (OOS) が引き受ける Resource Access Management (RAM) ロールです。 |
String |
いいえ |
OOSServiceRole |
出力パラメーター
|
パラメーター |
説明 |
タイプ |
|
ipAddresses |
ライフサイクルフックに関与する ECS インスタンスの IP アドレスのリストです。 |
List |
テンプレートの実行に必要なポリシー
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"polardb:DescribeDBClusterAccessWhitelist",
"polardb:ModifyDBClusterAccessWhitelist"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:CompleteLifecycleAction"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
関連ドキュメント
ACS-ESS-LifeCycleModifyPolarDBIPWhitelist
テンプレートの内容
FormatVersion: OOS-2019-06-01
Description:
ja: ライフサイクルフックを使用して PolarDB クラスターの IP ホワイトリストを変更します。
name-ja: ACS-ESS-LifeCycleModifyPolarDBIPWhitelist
categories:
- elastic_manage
Parameters:
dbClusterId:
Label:
ja: PolarDB クラスター ID
Type: String
modifyMode:
Label:
ja: 変更モード
Description:
ja: IP ホワイトリストを変更する方法です。スケールアウトには Append を、スケールインには Delete を使用します。
Type: String
AllowedValues:
- Append
- Delete
regionId:
Label:
ja: リージョン ID
Description:
ja: リージョン ID です。
Type: String
Default: '${regionId}'
instanceIds:
Label:
ja: インスタンス ID
Description:
ja: ECS インスタンスの ID リストです。
Type: List
Default:
- '${instanceIds}'
lifecycleHookId:
Label:
ja: ライフサイクルフック ID
Description:
ja: ライフサイクルフックの ID です。
Type: String
Default: '${lifecycleHookId}'
lifecycleActionToken:
Label:
ja: ライフサイクルアクショントークン
Description:
ja: インスタンスに関連付けられた特定のスケーリングアクティビティを示すトークンです。
Type: String
Default: '${lifecycleActionToken}'
OOSAssumeRole:
Label:
ja: OOS が引き受ける RAM ロール
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstanceIpAddress
Action: 'ACS::ExecuteAPI'
Description:
ja: ECS インスタンスのネットワークタイプと IP アドレスを取得します。
OnError: CompleteLifecycleActionForAbandon
Properties:
Service: ECS
API: DescribeInstances
Parameters:
RegionId: '{{ regionId }}'
InstanceIds: '{{ instanceIds }}'
Outputs:
ipAddress:
Type: List
ValueSelector: '.Instances.Instance[]|.VpcAttributes.PrivateIpAddress.IpAddress+.InnerIpAddress.IpAddress|.[]'
- Name: modifyPolarDBIPWhitelist
Action: 'ACS::ESS::ModifyPolarDBIPWhitelist'
Description:
ja: 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:
ja: ライフサイクルアクションを完了して続行します。
OnSuccess: 'ACS::END'
Properties:
Service: ESS
API: CompleteLifecycleAction
Parameters:
RegionId: '{{ regionId }}'
LifecycleHookId: '{{ lifecycleHookId }}'
LifecycleActionToken: '{{ lifecycleActionToken }}'
LifecycleActionResult: CONTINUE
- Name: CompleteLifecycleActionForAbandon
Action: 'ACS::ExecuteAPI'
Description:
ja: ライフサイクルアクションを完了して中断します。
Properties:
Service: ESS
API: CompleteLifecycleAction
Parameters:
RegionId: '{{ regionId }}'
LifecycleHookId: '{{ lifecycleHookId }}'
LifecycleActionToken: '{{ lifecycleActionToken }}'
LifecycleActionResult: ABANDON
Outputs:
ipAddresses:
Type: List
Value: '{{ getInstanceIpAddress.ipAddress}}'