テンプレート名
ACS-ESS-LifeCycleRunCommandOnSpecifiedInstance
テンプレートの説明
ライフサイクルフックを使用して、スケーリングアクティビティの対象インスタンスの中から、指定された単一の Elastic Compute Service (ECS) インスタンスでコマンドを実行します。
テンプレートタイプ
自動
所有者
Alibaba Cloud
入力パラメーター
|
パラメーター |
説明 |
タイプ |
必須 |
デフォルト値 |
制限 |
|
commandInstanceId |
コマンドを実行する ECS インスタンスの ID。 |
文字列 |
はい |
||
|
commandContent |
Cloud Assistant コマンドの内容。 |
文字列 |
いいえ |
echo hello |
|
|
regionId |
リージョン ID。 |
文字列 |
いいえ |
${regionId} |
|
|
instanceIds |
ECS インスタンスの ID のリスト。 |
リスト |
いいえ |
['${instanceIds}'] |
|
|
lifecycleHookId |
ライフサイクルフック ID。 |
文字列 |
いいえ |
${lifecycleHookId} |
|
|
lifecycleActionToken |
インスタンスに関連付けられた特定のスケーリングアクティビティのトークン。 |
文字列 |
いいえ |
${lifecycleActionToken} |
|
|
rateControl |
レート制御設定。 |
JSON |
いいえ |
{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 1} |
|
|
OOSAssumeRole |
CloudOps Orchestration Service (OOS) が引き受ける Resource Access Management (RAM) ロール。 |
文字列 |
いいえ |
OOSServiceRole |
出力パラメーター
|
パラメーター |
説明 |
タイプ |
|
commandOutputs |
リスト |
テンプレートの実行に必要なポリシー
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:CompleteLifecycleAction"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
関連ドキュメント
ACS-ESS-LifeCycleRunCommandOnSpecifiedInstance
テンプレートの内容
FormatVersion: OOS-2019-06-01
Description:
ja: ライフサイクルフックを使用して、スケーリングアクティビティの対象インスタンスの中から、指定された単一のインスタンスでコマンドを実行します。
name-ja: ACS-ESS-LifeCycleRunCommandOnSpecifiedInstance
categories:
- elastic_manage
Parameters:
commandInstanceId:
Label:
ja: コマンドインスタンス ID
Type: String
commandContent:
Label:
ja: コマンド内容
Type: String
AssociationProperty: Code
Default: echo hello
regionId:
Label:
ja: リージョン ID
Description:
ja: 'リージョン ID。Auto Scaling のシステムデフォルト値 ${regionId} を使用してください。'
Type: String
Default: '${regionId}'
instanceIds:
Label:
ja: インスタンス ID
Description:
ja: 'ECS インスタンス ID のリスト。Auto Scaling のシステムデフォルト値 ["${instanceIds}"] を使用してください。'
Type: List
Default:
- '${instanceIds}'
lifecycleHookId:
Label:
ja: ライフサイクルフック ID
Description:
ja: 'ライフサイクルフックの ID。Auto Scaling のシステムデフォルト値 ${lifecycleHookId} を使用してください。'
Type: String
Default: '${lifecycleHookId}'
lifecycleActionToken:
Label:
ja: ライフサイクルアクショントークン
Description:
ja: 'インスタンスに関連付けられた特定のスケーリングアクティビティのトークン。Auto Scaling のシステムデフォルト値 ${lifecycleActionToken} を使用してください。'
Type: String
Default: '${lifecycleActionToken}'
rateControl:
Label:
ja: レート制御
Type: JSON
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 1
OOSAssumeRole:
Label:
ja: OOSAssumeRole
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: runCommandOnSpecifiedInstance
Action: ACS::ESS::RunCommandOnSpecifiedInstance
OnError: CompleteLifecycleActionForAbandon
OnSuccess: CompleteLifecycleActionForContinue
Description:
ja: Cloud Assistant コマンドを実行します。
Properties:
regionId: '{{ regionId }}'
commandContent: '{{ commandContent }}'
commandInstanceId: '{{ commandInstanceId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ instanceIds }}'
Outputs:
commandOutputs:
AggregateType: Fn::ListJoin
AggregateField: commandOutput
Outputs:
commandOutput:
Type: String
ValueSelector: invocationOutput
- 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:
commandOutputs:
Type: List
Value: '{{ runCommandOnSpecifiedInstance.commandOutputs }}'