Systems Manager のメンテナンスウィンドウでオートメーションタスクを登録するときに擬似パラメータを追加するにはどうすればよいですか?

最終更新日: 2021 年 4 月 20 日

複数の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを対象とする AWS Systems Manager のメンテナンスウィンドウに、オートメーションドキュメントタスクを登録したいと考えています。どうすればそれができますか?

簡単な説明

メンテナンスウィンドウにオートメーションタスクを登録するときは、タスクの実行時にタスクに渡す入力パラメータ値を指定する必要があります。必要な入力パラメータは、オートメーションドキュメントのコンテンツで定義されているパラメータと同じです。必須入力パラメータフィールドで擬似パラメータ値を使用して、メンテナンスウィンドウが対象とするリソース ID を動的に参照できます。{{RESOURCE_ID}} などの擬似パラメータを使用すると、各リソース ID を個別に入力しなくても、複数のリソースを対象にできます。

例えば、Amazon が提供する AWS Stopec2Instance ドキュメントでは、インスタンス ID をパラメータとして入力する必要があります。メンテナンスウィンドウで複数のインスタンスを対象とする場合、またはインスタンス ID がわからない場合は、擬似パラメータを使用することができます。

注意: ターゲットタイプ INSTANCE では、{{TARGET_ID}} と {{RESOURCE_ID}} の擬似パラメータはどちらもインスタンス ID のみを生成します。ただし、ターゲットタイプ RESOURCE_GROUP の場合、{{TARGET_ID}} と {{RESOURCE_ID}} は、異なる形式でIDを返します。詳細について、および使用可能な擬似パラメータのリストについては、「 擬似パラメータについて 」を参照してください。

Systems Manager コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して、メンテナンスウィンドウのオートメーションタスクを擬似パラメータで登録できます。

解決方法

コンソールの使用

動的擬似パラメータを使用してメンテナンスウィンドウのオートメーションタスクを登録するには、以下の手順を実行します。

  1. Systems Manager コンソールを開き、ナビゲーションペインで [Maintenance Windows] を選択します。
  2. メンテナンスウィンドウを選択してから、[ 詳細の表示 ] を選択します。
  3. [タスク] タブで、[タスクの登録 ]、[オートメーションタスクの登録] の順に選択します。
  4. [ オートメーションドキュメント] で、タスクを実行するドキュメントを選択します。
  5. ターゲットレートコントロール、および IAM サービスロールを指定します。
  6. [入力パラメータ] に、リソース ID を必要とするパラメータの擬似パラメータ値 (例、{{TARGET_ID}} または {{RESOURCE_ID}}) を入力します。
  7. [オートメーションタスクの登録] を選択します。

AWS CLI の使用

注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

次の例では、AWS CLI を使用して {{RESOURCE_ID}} パラメータを含むオートメーションタスクを登録します。

aws ssm register-task-with-maintenance-window --window-id mw-1234567890EXAMPLE --targets Key=WindowTargetIds,Values=6c226ea3-463a-4533-8a2d-EXAMPLE --task-arn AWS-StopEC2Instance --task-type AUTOMATION --name MyMaintenanceWindowTask --max-concurrency 10 --max-errors 5 --task-invocation-parameters={\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{RESOURCE_ID}}\"]}}} --service-role-arn YOUR_SERVICE_ROLE_ARN

メンテナンスウィンドウタスクが実行されると、各ターゲットの対応するリソース ID がシステムに渡されます。前の例で、instanceId パラメータは、ターゲットグループ内の各ターゲットに対応するインスタンス ID を受け取ります。