このトピックでは、CloudOps Orchestration Service(OOS)カスタムテンプレートを使用して、同じリージョン内の複数のリソースのタグ値を一括変更する方法について説明します。
前提条件
Elastic Compute Service(ECS)インスタンスにタグが追加されています。 詳細については、「タグを作成する」および「タグを追加する」をご参照ください。
背景情報
このトピックでは、複数の ECS インスタンスのタグ値を一括変更するために、OOS でカスタムテンプレートを作成します。 この例では、ECS インスタンスのタグ値を OldTagValue から NewTagValue に変更します。 関連するタグのキーと値のペアは、TagKey:OldTagValue
から TagKey:NewTagValue
に変更されます。
OOS カスタムテンプレートを使用して、最大 1,000 個のリソースのタグ値を一括変更できます。 リソース数が 1,000 を超える場合は、テンプレートを複数回実行する必要があります。
OOS カスタムテンプレートを使用して、同じリージョン内のタグをサポートするリソースのタグ値を変更できます。 テンプレート内の関連 API 操作を変更して、さまざまなリソースに適用できます。 タグをサポートするリソースの詳細については、「タグと連携するサービス」をご参照ください。 OOS でサポートされているリソースの詳細については、「サポートされているクラウドサービスの一覧」をご参照ください。
手順 1:OOS カスタムテンプレートを作成する
次の手順を実行して、複数のリソースのタグ値を一括変更するために使用する OOS カスタムテンプレートを作成できます。
OOS コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、目的のリージョンを選択します。
[テンプレートの作成] をクリックします。
[JSON] タブをクリックし、テンプレートのコードを記述します。
次のコードは例を示しています。
{ "Description": "Modify a tag value of multiple resources at a time", // 複数のリソースのタグ値を一括変更する "FormatVersion": "OOS-2019-06-01", "Parameters": { "operateId": { "Description": "The operation ID", // 操作 ID "Type": "String", "MinLength": 1, "MaxLength": 64 }, "tagKey": { "Description": "Current tag key", // 現在のタグキー "Type": "String", "MinLength": 1, "MaxLength": 64 }, "tagValue": { "Description": "Current tag value", // 現在のタグ値 "Type": "String", "MinLength": 1, "MaxLength": 64 }, "newTagValue": { "Description": "New tag value", // 新しいタグ値 "Type": "String", "MinLength": 1, "MaxLength": 64 } }, "Tasks": [ { "Name": "DescribeInstances_ECS", "Action": "ACS::ExecuteAPI", "Description": { "en": "filter ecs instances by tags" // タグで ECS インスタンスをフィルタリングする }, "Properties": { "Service": "ECS", "API": "DescribeInstances", "AutoPaging": true, "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ tagValue }}" } ] } }, "Outputs": { "Instances": { "Type": "List", "ValueSelector": "Instances.Instance[].InstanceId" } } }, { "Name": "TagResources_ECS_Instances", "Action": "ACS::ExecuteAPI", "Description": { "en": "tag ecs instances" // ECS インスタンスにタグを付ける }, "Properties": { "Service": "ECS", "API": "TagResources", "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ newTagValue }}" } ], "ResourceType": "Instance", "ResourceId": [ "{{ACS::TaskLoopItem}}" ] } }, "Loop": { "MaxErrors": "100%", "Concurrency": 20, "Items": "{{DescribeInstances_ECS.Instances}}" } } ], "Outputs": {} }
[テンプレートの作成] をクリックします。
[テンプレートの基本情報] ダイアログボックスで、テンプレート名、タグ、リソースグループ、バージョンの説明などの基本情報を設定します。
[OK] をクリックします。
手順 2:カスタムテンプレートを実行する
手順 1:OOS カスタムテンプレートを作成する で作成したテンプレートを実行して、複数のリソースのタグ値を変更するには、次の手順を実行します。
[カスタムテンプレート] ページで、手順 1:OOS カスタムテンプレートを作成する で作成したテンプレートを見つけ、[実行の作成][アクション] 列の をクリックします。
基本情報ステップで、[実行の説明] と [実行モード] を設定します。 次に、[次のステップ:パラメータ設定] をクリックします。
パラメータ設定ステップで、パラメータを設定し、[次のステップ:OK] をクリックします。
このステップでは、次のパラメータを設定する必要があります。
operateId:操作を識別するために使用される操作 ID。 このパラメータは、要件に基づいて設定できます。
tagKey:現在のタグキー。 この例では、現在のタグキーは
TagKey
です。tagValue:現在のタグ値。 この例では、現在のタグ値は
OldTagValue
です。newTagValue:新しいタグ値。 この例では、新しいタグ値は
NewTagValue
です。
[作成] をクリックします。
テンプレートが実行されると、実行の詳細ページが表示されます。 このページで実行結果を確認できます。
説明実行に失敗した場合は、ログで失敗の原因を確認し、調整を行うことができます。