複数の 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) を使用できます。
Systems Manager コンソールを使用する
次の手順を実行します。
- Systems Manager コンソールを開きます。
- ナビゲーションペインで [メンテナンスウィンドウ] を選択し、該当するメンテナンスウィンドウを選択します。
- [タスク] ページで [タスクを登録] を選択し [自動化タスクの登録] を選択します。
- [自動化タスクの登録] ページで、次の情報を入力します。
[自動化ドキュメント] でタスクを実行させるドキュメントを選択します。
[ターゲット] でターゲットの情報を指定します。
[入力パラメータ] に疑似パラメータの値を入力します。たとえば、リソース ID を必要とするパラメータには TARGET_ID または RESOURCE_ID と入力します。
[レートコントロール] にレート情報を指定します。
[IAM サービスロール] には、AWS Identity and Access Management (IAM) ロールを指定します。
- [オートメーションタスクの登録] を選択します。
AWS CLI を使用する
注: AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI でのエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
register-task-with-maintenance-window コマンドを実行します。
次のコマンド例では、{{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 を取得します。
関連情報
サポートされている擬似パラメータ
register-task-with-maintenance-windows コマンドのパラメータオプション