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

CloudOps Orchestration Service:ACS-TAG-ExtendEcsInstanceTagsByInputParams

最終更新日:Dec 21, 2025

テンプレート名

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