テンプレート名
ACS-TAG-ExtendEcsInstanceTagsByInputParams アクションは、ディスク、イメージ、スナップショット、Elastic IP (EIP)、Elastic Network Interface (ENI) など、Elastic Compute Service (ECS) インスタンスに関連付けられたリソースに、そのインスタンスからタグを継承させます。
テンプレートの説明
Elastic Compute Service (ECS) インスタンスのタグを、ディスク、イメージ、スナップショット、Elastic IP アドレス (EIP)、および Elastic Network Interface (ENI) などの関連リソースに適用します。
テンプレートタイプ
自動化
所有者
Alibaba Cloud
入力パラメーター
パラメーター | 説明 | タイプ | 必須 | デフォルト値 | 制限 |
targets | 宛先インスタンス。 | Json | はい | ||
tagKeys | 適用するタグキー。 | リスト | はい | ||
resourceTypes | タグが適用されるリソースのタイプ。 | リスト | はい | ||
regionId | リージョン ID。 | 文字列 | いいえ | {{ ACS::RegionId }} | |
isUpdate | タグ値を上書きするかどうかを指定します。 | ブール値 | いいえ | False | |
rateControl | タスク実行の同時実行数 | Json | いいえ | {'Mode': 'Concurrency', 'MaxErrors': 100, 'Concurrency': 50} | |
OOSAssumeRole | CloudOps Orchestration Service (OOS) によって引き受けられる Resource Access Management (RAM) ロール。 | 文字列 | いいえ | "" |
出力パラメーター
なし
テンプレートを実行するために必要な権限ポリシー
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeDisks",
"ecs:DescribeImages",
"ecs:DescribeInstances",
"ecs:DescribeNetworkInterfaces",
"ecs:DescribeSnapshots",
"ecs:TagResources"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"vpc:ListTagResources",
"vpc:TagResources"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
詳細
詳細については、GitHub の ACS-TAG-ExtendEcsInstanceTagsByInputParams.yml をご参照ください。
テンプレートコンテンツ
FormatVersion: OOS-2019-06-01
Description:
en: ECS インスタンスから関連リソース (ディスク、イメージ、スナップショット、EIP、ENI) にタグを適用します。
zh-cn: ECS インスタンスから関連リソース (ディスク、イメージ、スナップショット、EIP、ENI) にタグを適用します。
name-en: ACS-TAG-ExtendEcsInstanceTagsByInputParams
name-zh-cn: ECS インスタンスから関連リソース (ディスク、イメージ、スナップショット、EIP、ENI) にタグを適用します。
categories:
- tag_manage
Parameters:
regionId:
Label:
en: リージョン
zh-cn: リージョン
Type: String
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Label:
en: ターゲットインスタンス
zh-cn: ターゲットインスタンス
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: ALIYUN::ECS::Instance
RegionId: regionId
tagKeys:
Label:
en: タグキー
zh-cn: 継承するタグキー
Type: List
resourceTypes:
Label:
en: リソースタイプ
zh-cn: タグを継承するリソースタイプ
Type: List
AllowedValues:
- disk
- snapshot
- eni
- eip
- image
isUpdate:
Label:
en: IsUpdate
zh-cn: タグ値を上書き
Description:
en: タグキーが同じ場合にタグ値を上書きするかどうか
zh-cn: タグキーが同じ場合にタグ値を上書きするかどうか
Type: Boolean
Default: false
rateControl:
Label:
en: レート制御
zh-cn: タスクの同時実行率
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 100
Concurrency: 50
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS RAM ロール
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstanceTagResources
Description:
en: ECS インスタンスとそのタグ情報を照会します。
zh-cn: ECS インスタンスとそのタグ情報を照会します。
Action: ACS::SelectTargets
Properties:
ResourceType: ALIYUN::ECS::Instance
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
desData:
Type: List
ValueSelector: '.Instances.Instance[] | {"Tags": .Tags.Tag | map(select( .TagKey | test("^(?!acs).*"))) | map(select(.TagKey as $tagKey | {{tagKeys}} | index($tagKey) >=0)) , "InstanceId": .InstanceId}?'
- Name: isTagDisk
Action: ACS::Choice
Description:
en: タグをディスクに拡張するかどうかを確認します。
zh-cn: タグをディスクに拡張するかどうかを確認します。
Properties:
DefaultTask: isTagSnapshot
Choices:
- When:
Fn::Equals:
- true
- Fn::Jq:
- First
- contains(["disk"])
- '{{resourceTypes}}'
NextTask: tagDisk
- Name: tagDisk
Action: ACS::Template
Description:
en: ECS インスタンスのタグに基づいてディスクのタグを更新します。
zh-cn: ECS インスタンスのタグに基づいてディスクのタグを更新します。
OnSuccess: isTagSnapshot
Properties:
TemplateName: ACS::ECS::UpdateDiskTagsByEcsInstanceTags
Parameters:
regionId: '{{ regionId }}'
instanceId:
Fn::Jq:
- First
- .InstanceId
- '{{ACS::TaskLoopItem}}'
tagKeys: '{{tagKeys}}'
isUpdate: '{{isUpdate}}'
Loop:
RateControl: '{{rateControl}}'
Items: '{{getInstanceTagResources.desData}}'
Outputs:
tagResult:
AggregateType: Fn::ListJoin
AggregateField: reqResult
- Name: isTagSnapshot
Action: ACS::Choice
Description:
en: タグをスナップショットに拡張するかどうかを確認します。
zh-cn: タグをスナップショットに拡張するかどうかを確認します。
Properties:
DefaultTask: isTagENI
Choices:
- When:
Fn::Equals:
- true
- Fn::Jq:
- First
- contains(["snapshot"])
- '{{resourceTypes}}'
NextTask: tagSnapshot
- Name: tagSnapshot
Action: ACS::Template
Description:
en: ECS インスタンスのタグに基づいてスナップショットのタグを更新します。
zh-cn: ECS インスタンスのタグに基づいてスナップショットのタグを更新します。
OnSuccess: isTagENI
Properties:
TemplateName: ACS::ECS::UpdateSnapshotTagsByEcsInstanceTags
Parameters:
regionId: '{{regionId}}'
instanceId:
Fn::Jq:
- First
- .InstanceId
- '{{ACS::TaskLoopItem}}'
tagKeys: '{{tagKeys}}'
isUpdate: '{{isUpdate}}'
Loop:
RateControl: '{{rateControl}}'
Items: '{{getInstanceTagResources.desData}}'
Outputs:
tagResult:
AggregateType: Fn::ListJoin
AggregateField: reqResult
- Name: isTagENI
Action: ACS::Choice
Description:
en: タグを ENI に拡張するかどうかを確認します。
zh-cn: タグを ENI に拡張するかどうかを確認します。
Properties:
DefaultTask: isTagEIP
Choices:
- When:
Fn::Equals:
- true
- Fn::Jq:
- First
- contains(["eni"])
- '{{resourceTypes}}'
NextTask: tagENI
- Name: tagENI
Action: ACS::Template
Description:
en: ECS インスタンスのタグに基づいて ENI のタグを更新します。
zh-cn: ECS インスタンスのタグに基づいて ENI のタグを更新します。
OnSuccess: isTagEIP
Properties:
TemplateName: ACS::ECS::UpdateEniTagsByEcsInstanceTags
Parameters:
regionId: '{{ regionId }}'
instanceId:
Fn::Jq:
- First
- .InstanceId
- '{{ACS::TaskLoopItem}}'
tagKeys: '{{tagKeys}}'
isUpdate: '{{isUpdate}}'
Loop:
RateControl: '{{rateControl}}'
Items: '{{getInstanceTagResources.desData}}'
Outputs:
tagResult:
AggregateType: Fn::ListJoin
AggregateField: reqResult
- Name: isTagEIP
Action: ACS::Choice
Description:
en: リソースタイプに基づいて次のタスクを選択します。
zh-cn: リソースタイプに基づいて次のタスクを選択します。
Properties:
DefaultTask: isTagImage
Choices:
- When:
Fn::Equals:
- true
- Fn::Jq:
- First
- contains(["eni"])
- '{{resourceTypes}}'
NextTask: tagEIP
- Name: tagEIP
Action: ACS::Template
Description:
en: ECS インスタンスのタグに基づいて EIP のタグを更新します。
zh-cn: ECS インスタンスのタグに基づいて EIP のタグを更新します。
OnSuccess: isTagImage
Properties:
TemplateName: ACS::ECS::UpdateEipTagsByEcsInstanceTags
Parameters:
regionId: '{{ regionId }}'
instanceId:
Fn::Jq:
- First
- .InstanceId
- '{{ACS::TaskLoopItem}}'
tagKeys: '{{tagKeys}}'
isUpdate: '{{isUpdate}}'
Loop:
RateControl: '{{rateControl}}'
Items: '{{getInstanceTagResources.desData}}'
Outputs:
tagResult:
AggregateType: Fn::ListJoin
AggregateField: reqResult
- Name: isTagImage
Action: ACS::Choice
Description:
en: リソースタイプに基づいて次のタスクを選択します。
zh-cn: リソースタイプに基づいて次のタスクを選択します。
Properties:
DefaultTask: ACS::END
Choices:
- When:
Fn::Equals:
- true
- Fn::Jq:
- First
- contains(["image"])
- '{{resourceTypes}}'
NextTask: tagImage
- Name: tagImage
Action: ACS::Template
Description:
en: ECS インスタンスのタグに基づいてカスタムイメージのタグを更新します。
zh-cn: ECS インスタンスのタグに基づいてカスタムイメージのタグを更新します。
OnSuccess: ACS::END
Properties:
TemplateName: ACS::ECS::UpdateCustomImageTagsByEcsInstanceTags
Parameters:
regionId: '{{ regionId }}'
instanceId:
Fn::Jq:
- First
- .InstanceId
- '{{ACS::TaskLoopItem}}'
tagKeys: '{{tagKeys}}'
isUpdate: '{{isUpdate}}'
Loop:
RateControl: '{{rateControl}}'
Items: '{{getInstanceTagResources.desData}}'
Outputs:
tagResult:
AggregateType: Fn::ListJoin
AggregateField: reqResult