

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# チュートリアル
<a name="maintenance-windows-tutorials"></a>

このセクションのチュートリアルでは、メンテナンスウィンドウを操作する際の一般的なタスクを実行する方法について説明する。

**前提条件を完了します。**  
これらのチュートリアルを試す前に、以下の前提条件を満たしてください。
+ **ローカルマシンで AWS CLI を設定する** – AWS CLI コマンドを実行する前に、ローカルマシンに CLI をインストールして設定する必要があります。詳細については、「[AWS CLI の最新バージョンをインストールまたは更新します。](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」および「[AWS Tools for PowerShell のインストール](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html)」を参照してください。
+ **メンテナンスウィンドウのロールとアクセス許可を確認する** – アカウントの AWS 管理者は、CLI を使用してメンテナンスウィンドウを管理するのに必要な AWS Identity and Access Management (IAM) アクセス許可をユーザーに付与する必要があります。詳細については、[Maintenance Windows を設定する](setting-up-maintenance-windows.md) を参照してください。
+ **Systems Manager と互換性のあるインスタンスを作成または設定する** – チュートリアルを完了するには、Systems Manager で使用するように設定された Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが少なくとも 1 つ必要です。つまり、SSM Agent がインスタンスにインストールされ、Systems Manager の IAM インスタンスプロファイルがインスタンスにアタッチされていることになります。

  プリインストールされたエージェントにより、マネージド Amazon Machine Image (AMI) の 1 つの AWS からインスタンスを起動することをお勧めします。詳細については、「[SSM Agent がプリインストールされている AMIs を見つける](ami-preinstalled-agent.md)」を参照してください。

  インスタンスへの SSM Agent のインストールについては、以下のトピックを参照してください。
  + [Windows Server 用の EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする](manually-install-ssm-agent-windows.md)
  + [Linux 用 EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする](manually-install-ssm-agent-linux.md)

  Systems Manager に IAM アクセス許可を設定する方法については、「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」を参照してください。
+ **必要に応じて追加のリソースを作成する** – Systems Manager のツールである Run Command には、この前提条件トピックに記載されているもの以外のリソースを作成する必要のないタスクが多く含まれています。そのため、チュートリアルを通して初めて使用するためのシンプルな Run Command タスクが用意されています。このトピックで前述のように、Systems Manager で使用するように設定されている EC2 インスタンスも必要です。そのインスタンスを設定した後、シンプルな Run Command タスクを登録できます。

  Systems Manager の Maintenance Windows ツールは、4 種類のタスクの実行をサポートします。
  + Run Command コマンド
  + Systems Manager Automation ワークフロー
  + AWS Lambda 関数
  + AWS Step Functions タスク

  一般的に、メンテナンスウィンドウ、タスク、実行する追加のリソースが必要です。これらを作成する必要があります。たとえば、AWS Lambda 関数を実行するメンテナンスウィンドウが必要な場合は、始める前に Lambda 関数を作成します。Run Command タスクの場合は、コマンド出力を保存できる S3 バケットを作成するなどの作業を行います (必要に応じて)。

**Topics**
+ [チュートリアル: AWS CLI を使用したメンテナンスウィンドウの作成と管理](maintenance-window-tutorial-cli.md)
+ [チュートリアル: コンソールを使用してパッチ用メンテナンスウィンドウを作成する](maintenance-window-tutorial-patching.md)

# チュートリアル: AWS CLI を使用したメンテナンスウィンドウの作成と管理
<a name="maintenance-window-tutorial-cli"></a>

このセクションには、AWS Command Line Interface (AWS CLI) を使用して以下を行う方法を理解するのに役立つチュートリアルが含まれています。
+ メンテナンスウィンドウを作成および設定する
+ メンテナンスウィンドウに関する情報を表示する
+ メンテナンスウィンドウのタスクとタスク実行に関する情報を表示する
+ メンテナンスウィンドウを更新する
+ メンテナンスウィンドウを削除する

**リソース ID を記録する**  
この AWS CLI チュートリアルのタスクを完了したら、実行するコマンドによって生成されたリソース ID を記録します。これらの ID の多くを後続のコマンドの入力として使用します。例えば、メンテナンスウィンドウを作成すると、このシステムによって以下の形式でメンテナンスウィンドウ ID が表示されます。

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

システムによって生成された以下の ID をメモします。それらの ID はこのセクションのチュートリアルで必要になります。
+ `WindowId`
+ `WindowTargetId`
+ `WindowTaskId`
+ `WindowExecutionId`
+ `TaskExecutionId`
+ `InvocationId`
+ `ExecutionId`

チュートリアルで使用する EC2 インスタンスの ID も必要です。例: `i-02573cafcfEXAMPLE`

**Topics**
+ [チュートリアル: AWS CLI を使用してメンテナンスウィンドウを作成および設定する](maintenance-windows-cli-tutorials-create.md)
+ [チュートリアル: AWS CLI を使用してメンテナンスウィンドウに関する情報を確認する](maintenance-windows-cli-tutorials-describe.md)
+ [チュートリアル: AWS CLI を使用してタスクおよびタスク実行に関する情報を確認する](mw-cli-tutorial-task-info.md)
+ [チュートリアル : AWS CLI を使用してメンテナンスウィンドウを更新する](maintenance-windows-cli-tutorials-update.md)
+ [チュートリアル: AWS CLI を使用してメンテナンスウィンドウを削除する](mw-cli-tutorial-delete-mw.md)

# チュートリアル: AWS CLI を使用してメンテナンスウィンドウを作成および設定する
<a name="maintenance-windows-cli-tutorials-create"></a>

このチュートリアルでは、AWS Command Line Interface (AWS CLI) を使用して、メンテナンスウィンドウおよびそのターゲットとタスクを作成し設定する方法について説明します。チュートリアルの主な手順はシンプルなステップで構成されています。1 つのメンテナンスウィンドウを作成し、1 つのターゲットを識別して、メンテナンスウィンドウで実行するシンプルなタスクを設定します。また、より複雑なシナリオを試すのに役立つ情報も提供しています。

このチュートリアルの手順に従う際に、斜体の*赤色*テキストの値を、独自のオプションおよび ID に置き換えてください。例えば、メンテナンスウィンドウ ID *mw-0c50858d01EXAMPLE* とインスタンス ID *i-02573cafcfEXAMPLE* を、作成したリソースの ID に置き換えます。

**Topics**
+ [ステップ 1: AWS CLI を使用してメンテナンスウィンドウを作成する](mw-cli-tutorial-create-mw.md)
+ [ステップ 2: AWS CLI を使用してメンテナンスウィンドウにターゲットノードを登録する](mw-cli-tutorial-targets.md)
+ [ステップ 3: AWS CLI を使用してメンテナンスウィンドウにタスクを登録する](mw-cli-tutorial-tasks.md)

# ステップ 1: AWS CLI を使用してメンテナンスウィンドウを作成する
<a name="mw-cli-tutorial-create-mw"></a>

このステップではメンテナンスウィンドウを作成して、名前、スケジュール、所要時間などの基本的なオプションを指定します。以降の手順で、更新するインスタンスと実行するタスクを選択します。

この例では、5 分ごとに実行されるメンテナンスウィンドウを作成します。通常は、メンテナンスウィンドウを頻繁に実行することはありません。ただし、この頻度では、チュートリアルの結果をすぐに確認できます。タスクが正常に実行された後、頻度を減らす方法を示します。

**注記**  
メンテナンスウィンドウのスケジュールに関するオプションの相互関係については、「[メンテナンスウィンドウのスケジューリングおよび有効期間のオプション](maintenance-windows-schedule-options.md)」を参照してください。  
`--schedule` オプションの使用方法の詳細については、「[リファレンス: Systems Manager の cron 式および rate 式](reference-cron-and-rate-expressions.md)」を参照してください。

**AWS CLIを使用してメンテナンスウィンドウを作成するには**

1. AWS Command Line Interface (AWS CLI) を開き、ローカルマシンで次のコマンドを実行して、以下を実行するメンテナンスウィンドウを作成します。
   + 5 分ごとに最大 2 時間実行します (必要に応じて)。
   + メンテナンスウィンドウのオペレーションが終了してから 1 時間以内に新しいタスクが開始されないようにします。
   + 関連付けられていないターゲット (メンテナンスウィンドウに登録されていないインスタンス) を許可します。
   + カスタムタグによって、メンテナンスウィンドウをその作成者がチュートリアルで使用することを示します。

------
#### [ Linux & macOS ]

   ```
   aws ssm create-maintenance-window \
       --name "My-First-Maintenance-Window" \
       --schedule "rate(5 minutes)" \
       --duration 2 \
       --cutoff 1 \
       --allow-unassociated-targets \
       --tags "Key=Purpose,Value=Tutorial"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-maintenance-window ^
       --name "My-First-Maintenance-Window" ^
       --schedule "rate(5 minutes)" ^
       --duration 2 ^
       --cutoff 1 ^
       --allow-unassociated-targets ^
       --tags "Key"="Purpose","Value"="Tutorial"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
      "WindowId":"mw-0c50858d01EXAMPLE"
   }
   ```

1. 次に、以下のコマンドを実行して、既にアカウントにあるこのメンテナンスウィンドウおよび他のウィンドウの詳細を表示します。

   ```
   aws ssm describe-maintenance-windows
   ```

   システムは以下のような情報を返します。

   ```
   {
      "WindowIdentities":[
         {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "Name": "My-First-Maintenance-Window",
               "Enabled": true,
               "Duration": 2,
               "Cutoff": 1,
               "NextExecutionTime": "2019-05-11T16:46:16.991Z"
         }
      ]
   }
   ```

「[ステップ 2: AWS CLI を使用してメンテナンスウィンドウにターゲットノードを登録する](mw-cli-tutorial-targets.md)」に進みます。

# ステップ 2: AWS CLI を使用してメンテナンスウィンドウにターゲットノードを登録する
<a name="mw-cli-tutorial-targets"></a>

このステップでは、新しいメンテナンスウィンドウでターゲットを登録します。この場合、メンテナンスウィンドウ実行時に更新するノードを指定します。

ノード ID を使用して一度に複数のノードを登録する例、タグを使用して複数のノードを識別する例、およびリソースグループをターゲットとして指定する例については、「[例: ターゲットをメンテナンスウィンドウに登録する](mw-cli-tutorial-targets-examples.md)」を参照してください。

**注記**  
[Maintenance Windows のチュートリアルの前提条件](maintenance-windows-tutorials.md)で説明されているように、このステップで使用する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスは既に作成されているはずです。

**AWS CLI を使用してメンテナンスウィンドウにターゲットノードを登録するには**

1. ローカルマシンで次のコマンドを実行します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

   ```
   aws ssm register-target-with-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --resource-type "INSTANCE" \
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm register-target-with-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --resource-type "INSTANCE" ^
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
      "WindowTargetId":"e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. ここで、ローカルマシンで次のコマンドを実行して、メンテナンスウィンドウのターゲットに関する詳細を表示します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-targets \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-targets ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "Targets": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
               "ResourceType": "INSTANCE",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ]
           }
       ]
   }
   ```

「[ステップ 3: AWS CLI を使用してメンテナンスウィンドウにタスクを登録する](mw-cli-tutorial-tasks.md)」に進みます。

# 例: ターゲットをメンテナンスウィンドウに登録する
<a name="mw-cli-tutorial-targets-examples"></a>

[ステップ 2: AWS CLI を使用してメンテナンスウィンドウにターゲットノードを登録する](mw-cli-tutorial-targets.md) で示すように、ノード ID を使用して、単一のノードをターゲットとして登録できます。このページのコマンド形式を使用すると、複数のノードをターゲットとして登録することもできます。

一般的に、メンテナンスウィンドウのターゲットとして使用するノードを特定する方法は 2 つあります。個々のノードを指定する方法と、リソースタグを使用する方法です。例 2～3 に示すように、リソースタグメソッドには、さらに多くのオプションがあります。

メンテナンスウィンドウのターゲットとして、1 つ以上のリソースグループを指定することもできます。リソースグループには、ノードおよびサポートされている他の多くの種類の AWS リソースを含めることができます。次に、例 4 と 5 で、リソースグループをメンテナンスウィンドウのターゲットに追加する方法を示しています。

**注記**  
1 つのメンテナンスウィンドウタスクが複数のターゲットに登録されている場合、そのタスクの呼び出しは並列ではなく、順番に実行されます。複数のターゲットで同時にタスクを実行する必要がある場合は、各ターゲットでタスクを個別に登録し、各タスクに同じ優先度レベルを割り当てます。

リソースグループの作成と管理の詳細については、*AWS Resource Groups ユーザーガイド*の「[リソースグループとは](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html)」および*AWS ニュースブログ*の「[AWS のリソースグループとタグ付け](https://aws.amazon.com/blogs/aws/resource-groups-and-tagging/)」を参照してください。

AWS Systems Manager のツールである Maintenance Windows のクォータについては、次の例で指定されているものに加えて、「*Amazon Web Services 全般のリファレンス*」の「[Systems Manager のサービスクォータ](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm)」を参照してください。

## 例 1: ノード ID を使用して複数のターゲットを登録する
<a name="mw-target-example-1"></a>

次のコマンドをローカルマシン形式で実行し、ノード ID を使用して複数のノードをターゲットとして登録します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE ^
    --resource-type "INSTANCE" ^
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
```

------

**推奨用途**: 最初はメンテナンスウィンドウに一意のノードグループを登録し、共通のノードタグを共有*しない*のが最も有益です。

**クォータ:** 各メンテナンスウィンドウターゲットに対して、ノードを合計 50 個まで指定できます。

## 例 2: ノードに適用されたリソースタグを使用してターゲットを登録する
<a name="mw-target-example-2"></a>

ローカルマシンで次のコマンドを実行して、割り当てたキーと値のペアで既にすべてがタグ付けされているノードを登録します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag:Region,Values=East"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag:Region,Values=East"
```

------

**推奨用途**: 最初はメンテナンスウィンドウに一意のノードグループを登録し、共通のノードタグを共有*する*のが最も有益です。

**クォータ**: ターゲットごとにキーと値のペアを合計 5 つまで指定できます。複数のキーと値のペアを指定する場合、ターゲットグループに含めると指定した*すべての*タグキーと値でノードをタグ付けする必要があります。

**注記**  
タグキー `Patch Group` または `PatchGroup` を使用してノードのグループにタグを付け、ノードに共通のキー値 (`my-patch-group`) を割り当てることができます。([EC2 インスタンスメタデータでタグを許可](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS)している場合は、スペースなしで `PatchGroup` を使用する必要があります。) Systems Manager のツールである Patch Manager は、ノードで `Patch Group` または `PatchGroup` キーを評価し、適用されるパッチベースラインを決定するのに役立ちます。タスクで `AWS-RunPatchBaseline` SSM ドキュメント (またはレガシー `AWS-ApplyPatchBaseline` の SSM ドキュメント) が実行される場合は、メンテナンスウィンドウにターゲットを登録する際に、同じ `Patch Group` または `PatchGroup` のキーの値を指定することができます。例: `--target "Key=tag:PatchGroup,Values=my-patch-group`。そうすることで、メンテナンスウィンドウを使用して、同じパッチベースラインにすでに関連付けられているノードグループのパッチを更新できます。詳細については、「[パッチグループ](patch-manager-patch-groups.md)」を参照してください。

## 例 3: タグキーのグループを使用してターゲットを登録する (タグ値なし)
<a name="mw-target-example-3"></a>

ローカルマシンで次のコマンドを実行して、キー値に関係なく、複数のタグキーが割り当てられているノードをすべて登録します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------

**推奨用途**: 1 つのタグキーやタグキーと値のペアではなく、複数のタグ*キー* (値はなし) を指定して、ノードをターゲットにする場合に役立ちます。

**クォータ**: ターゲットごとにタグキーを合計 5 つまで指定できます。複数のタグキーを指定する場合、ターゲットグループに含めるように指定した*すべての*タグキーで、ノードにタグ付けする必要があります。

## 例 4: リソースグループ名を使用してターゲットを登録する
<a name="mw-target-example-4"></a>

ローカルマシンで次のコマンドを実行して、指定されたリソースグループを登録します。含まれるリソースのタイプは関係ありません。*mw-0c50858d01EXAMPLE* を自分の情報に置き換えます。メンテナンスウィンドウに割り当てたタスクが、このリソースグループに含まれるリソースのタイプで動作しない場合は、エラーがレポートされる場合があります。これらのエラーにもかかわらず、サポートされているリソースタイプが検出されたタスクは引き続き実行されます。

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------

**推奨用途**: すべてのリソースタイプがメンテナンスウィンドウのターゲットになるかどうかを評価せずに、リソースグループをターゲットとしてすばやく指定する場合、またはタスクでアクションを実行するリソースタイプのみ、リソースグループに含まれていることがわかっている場合に役立ちます。

**制限:** 1 つのリソースグループのみをターゲットとして指定できます。

## 例 5: リソースグループのリソースタイプをフィルタリングしてターゲットを登録する
<a name="mw-target-example-5"></a>

ローカルマシンで次のコマンドを実行して、指定したリソースグループに属する特定のリソースタイプのみを登録します。*mw-0c50858d01EXAMPLE* を自分の情報に置き換えます。このオプションを使用すると、リソースグループに属するリソースタイプのタスクを追加した場合でも、リソースタイプをフィルタに明示的に追加していない場合、タスクは実行されません。

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup" \
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup" ^
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------

**推奨用途**: メンテナンスウィンドウでアクションを実行できる AWS リソースのタイプを厳密に制御する場合、またはリソースグループに多数のリソースタイプが含まれていて、メンテナンスウィンドウログに不要なエラーレポートを含めない場合に役立ちます。

**制限:** 1 つのリソースグループのみをターゲットとして指定できます。

# ステップ 3: AWS CLI を使用してメンテナンスウィンドウにタスクを登録する
<a name="mw-cli-tutorial-tasks"></a>

チュートリアルのこのステップでは、Linux 用の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで `df` コマンドを実行する AWS Systems Manager Run Command タスクを登録します。この標準の Linux コマンドの結果は、空き領域の割合をディスクで使用されているが、インスタンスのファイルシステムです。

-または-

Linux ではなく Windows Server の Amazon EC2 インスタンスをターゲットにしている場合は、以下のコマンドの **df** を **ipconfig** に置き換えます。このコマンドからの出力には、ターゲットインスタンスのアダプターの IP アドレス、サブネットマスク、デフォルトゲートウェイに関する詳細が一覧表示されます。

他のタスクタイプを登録したり、使用可能な Systems Manager Run Command オプションを使用する準備ができたら、「[例: タスクをメンテナンスウィンドウに登録する](mw-cli-register-tasks-examples.md)」を参照してください。そのトピックでは、より現実的なシナリオを計画するのに役立つように、4 つのすべてのタスクタイプについて、また、それらの最も重要なオプションのいくつかについて、詳細な情報を提供しています。

**タスクをメンテナンスウィンドウに登録するには**

1. ローカルマシンで次のコマンドを実行します。各*リソースプレースホルダーの例*をユーザー自身の情報に置き換えます。ローカルの Windows マシンから実行するバージョンには、コマンドラインツールからコマンドを実行するのに必要なエスケープ文字 (/) が含まれています。

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --window-id mw-0c50858d01EXAMPLE \
       --task-arn "AWS-RunShellScript" \
       --max-concurrency 1 --max-errors 1 \
       --priority 10 \
       --targets "Key=InstanceIds,Values=i-0471e04240EXAMPLE" \
       --task-type "RUN_COMMAND" \
       --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --window-id mw-0c50858d01EXAMPLE ^
       --task-arn "AWS-RunShellScript" ^
       --max-concurrency 1 --max-errors 1 ^
       --priority 10 ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
       --task-type "RUN_COMMAND" ^
       --task-invocation-parameters={\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

1. 作成したメンテナンスウィンドウタスクの詳細を表示するには、以下のコマンドを実行します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-tasks \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-tasks ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

1. システムは以下のような情報を返します。

   ```
   {
       "Tasks": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
               "TaskArn": "AWS-RunShellScript",
               "Type": "RUN_COMMAND",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ],
               "TaskParameters": {},
               "Priority": 10,
               "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",
               "MaxConcurrency": "1",
               "MaxErrors": "1"
           }
       ]
   }
   ```

1. 「[ステップ 1: AWS CLI を使用してメンテナンスウィンドウを作成する](mw-cli-tutorial-create-mw.md)」で指定したスケジュールに基づいて、タスクを実行する時間になるまで待ちます。たとえば、**--schedule "rate(5 minutes)"** を指定した場合は、5 分待ちます。その後、以下のコマンドを実行して、このタスクで発生した実行に関する情報を表示します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           }
       ]
   }
   ```

**ヒント**  
タスクが正常に実行した後、メンテナンスウィンドウが実行される頻度を減らすことができます。例えば、以下のコマンドを実行して頻度を週に 1 回に減らします。*mw-0c50858d01EXAMPLE* を自分の情報に置き換えます。  

```
aws ssm update-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --schedule "rate(7 days)"
```

```
aws ssm update-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --schedule "rate(7 days)"
```
メンテナンスウィンドウのスケジュール管理の詳細については、「[リファレンス: Systems Manager の cron 式および rate 式](reference-cron-and-rate-expressions.md)」と「[メンテナンスウィンドウのスケジューリングおよび有効期間のオプション](maintenance-windows-schedule-options.md)」を参照してください。  
AWS Command Line Interface (AWS CLI) を使用してメンテナンスウィンドウを変更する方法については、「[チュートリアル : AWS CLI を使用してメンテナンスウィンドウを更新する](maintenance-windows-cli-tutorials-update.md)」を参照してください。

AWS CLI コマンドによりメンテナンスウィンドウのタスクとその実行に関する詳細を表示する演習については、「[チュートリアル: AWS CLI を使用してタスクおよびタスク実行に関する情報を確認する](mw-cli-tutorial-task-info.md)」に進みます。

**チュートリアルコマンド出力へのアクセス**  
AWS CLI を使用して、メンテナンスウィンドウのタスク実行に関連付けられた Run Command コマンドの*出力*を表示することは、このチュートリアルの範囲外です。

ただし、AWS CLI を使用してこのデータを表示できます。(コマンド出力をコンソールやログファイルに保存するように、メンテナンスウィンドウを設定している場合、Systems Manager コンソールでも、Amazon Simple Storage Service (Amazon S3) バケットに保存されているログファイルでも、出力を表示できます)。Linux の EC2 インスタンスでの **df** コマンドの出力は以下のようになります。

```
Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 485716 0 485716 0% /dev

tmpfs 503624 0 503624 0% /dev/shm

tmpfs 503624 328 503296 1% /run

tmpfs 503624 0 503624 0% /sys/fs/cgroup

/dev/xvda1 8376300 1464160 6912140 18% /
```

**ipconfig** の EC2 インスタンスでの Windows Server コマンドの出力は以下のようになります。

```
Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : example.com
   IPv4 Address. . . . . . . . . . . : 10.24.34.0/23
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : abc1.wa.example.net

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::100b:c234:66d6:d24f%4
   IPv4 Address. . . . . . . . . . . : 192.0.2.0
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.0.2.0

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
```

# 例: タスクをメンテナンスウィンドウに登録する
<a name="mw-cli-register-tasks-examples"></a>

「[メンテナンスウィンドウを使用してタスクを登録する](mw-cli-tutorial-tasks.md)」に示されているように、AWS Command Line Interface (AWS CLI) を使用してメンテナンスウィンドウに Run Command (AWS Systems Manager のツール) でタスクを登録できます。このトピックで後ほど示すように、Systems Manager Automation ワークフローのタスク、AWS Lambda 関数、AWS Step Functions タスクを登録することもできます。

**注記**  
メンテナンスウィンドウの Run Command タイプのタスクには、1つ以上のターゲットを指定します。タスクに応じて、他のメンテナンスウィンドウタスクタイプ (Automation、AWS Lambda、AWS Step Functions) に対するターゲットはオプションです。ターゲットを指定しないタスクの実行の詳細については、「[ターゲットのないメンテナンスウィンドウタスクを登録](maintenance-windows-targetless-tasks.md)」を参照してください。

このトピックでは、AWS Command Line Interface (AWS CLI) コマンド `register-task-with-maintenance-window` を使用して、サポートされている 4 つのタスクタイプをそれぞれメンテナンスウィンドウに登録する例を示しています。それらの例はデモ専用ですが、作業タスクの登録コマンドを作成するように変更できます。

**--cli-input-json オプションの使用**  
タスクオプションをより適切に管理するために、`--cli-input-json` コマンドオプションに、JSON ファイルで参照されるオプション値を指定できます。

以下の例で提供しているサンプル JSON ファイルコンテンツを使用するには、ローカルマシンで以下の手順を実行します。

1. `MyRunCommandTask.json`、`MyAutomationTask.json` などの名前、または他の任意の名前でファイルを作成します。

1. そのファイルに JSON サンプルの内容をコピーします。

1. タスク登録用にその内容を変更し、そのファイルを保存します。

1. ファイルを保存したのと同じディレクトリで、以下のコマンドを実行します。ファイル名を *MyFile.json* に置き換えます。

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --cli-input-json file://MyFile.json
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --cli-input-json file://MyFile.json
   ```

------

**メンテナンスウィンドウタスクの登録における疑似パラメータ**  
いくつかの例では、ID 情報をタスクに渡すための方法として*疑似パラメータ*を使用します。例えば、`{{TARGET_ID}}` と `{{RESOURCE_ID}}` は、AWS リソースの ID を Automation 、Lambda、Step Functions のタスクに渡すために使用されます。`--task-invocation-parameters` コンテンツ内の疑似パラメータの詳細については、「[メンテナンスウィンドウのタスクを登録する際の疑似パラメータの使用](maintenance-window-tasks-pseudo-parameters.md)」を参照してください。

**詳細情報**  
+ ["register-task-with-maintenance-window" コマンドのパラメーターオプション](mw-cli-task-options.md).
+ [register-task-with-maintenance-window「 コマンドリファレンス」](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)の*「AWS CLI」*を参照してください。
+ 「*[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html) API リファレンス*」の「AWS Systems Manager」

## タスクの登録例
<a name="task-examples"></a>

以下のセクションでは、サポートされているタスクタイプを登録するサンプルの AWS CLI コマンドと、`--cli-input-json` オプションで用できる JSON サンプルを示しています。

### Systems Manager Run Command タスクを登録する
<a name="register-tasks-tutorial-run-command"></a>

以下の例は、AWS CLI を使用して、メンテナンスウィンドウで Systems Manager Run Command タスクを登録する方法を示しています。

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --task-arn "AWS-RunShellScript" \
    --max-concurrency 1 --max-errors 1 --priority 10 \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --task-type "RUN_COMMAND" \
    --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --task-arn "AWS-RunShellScript" ^
    --max-concurrency 1 --max-errors 1 --priority 10 ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --task-type "RUN_COMMAND" ^
    --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"
```

------

**`--cli-input-json` ファイルオプションで使用する JSON コンテンツ:**

```
{
    "TaskType": "RUN_COMMAND",
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Description": "My Run Command task to update SSM Agent on an instance",
    "MaxConcurrency": "1",
    "MaxErrors": "1",
    "Name": "My-Run-Command-Task",
    "Priority": 10,
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "AWS-UpdateSSMAgent",
    "TaskInvocationParameters": {
        "RunCommand": {
            "Comment": "A TaskInvocationParameters test comment",
            "NotificationConfig": {
                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",
                "NotificationEvents": [
                    "All"
                ],
                "NotificationType": "Invocation"
            },
            "OutputS3BucketName": "amzn-s3-demo-bucket",
            "OutputS3KeyPrefix": "S3-PREFIX",
            "TimeoutSeconds": 3600
        }
    }
}
```

### Systems Manager Automation タスクを登録する
<a name="register-tasks-tutorial-automation"></a>

以下の例では、AWS CLI を使用して Systems Manager Automation タスクをメンテナンスウィンドウに登録する方法を示しています。

** AWS CLI コマンド:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --task-arn "AWS-RestartEC2Instance" \
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
    --task-type AUTOMATION \
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \
    --description "Automation task to restart EC2 instances"
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
    --task-type AUTOMATION ^
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^
    --description "Automation task to restart EC2 instances"
```

------

**`--cli-input-json` ファイルオプションで使用する JSON コンテンツ:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
        "TaskArn": "AWS-PatchInstanceWithRollback",
    "TaskType": "AUTOMATION","TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
}
```

### AWS Lambda タスクを登録する
<a name="register-tasks-tutorial-lambda"></a>

以下の例では、AWS CLI を使用して Lambda 関数タスクをメンテナンスウィンドウに登録する方法を示しています。

これらの例では、Lambda 関数を作成したユーザーがその関数に `SSMrestart-my-instances` という名前を付け、`instanceId` と `targetType` という名前の 2 つのパラメータを作成したとします。

**重要**  
Maintenance Windows の IAM ポリシーでは、Lambda 関数名 (またはエイリアス) の前にプレフィックス `SSM` を付ける必要があります。このタイプのタスクを登録する前に、AWS Lambda で `SSM` を含めるようにその名前を更新します。例えば、Lambda 関数名が `MyLambdaFunction` の場合は、`SSMMyLambdaFunction` に変更します。

** AWS CLI コマンド:**

------
#### [ Linux & macOS ]

**重要**  
AWS CLI のバージョン 2 を使用している場合、Lambda ペイロードが base64 エンコードでなければ、以下のコマンドにオプション `--cli-binary-format raw-in-base64-out` を含める必要があります。`cli_binary_format` オプションは、バージョン 2 でしか使用できません。これと他の AWS CLI `config`ファイル設定については、*AWS Command Line Interface ユーザーガイド*で「[サポート対象 `config` ファイル設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings)」を参照してください。

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" \
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \
    --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
```

------
#### [ PowerShell ]

**重要**  
AWS CLI のバージョン 2 を使用している場合、Lambda ペイロードが base64 エンコードでなければ、以下のコマンドにオプション `--cli-binary-format raw-in-base64-out` を含める必要があります。`cli_binary_format` オプションは、バージョン 2 でしか使用できません。これと他の AWS CLI `config`ファイル設定については、*AWS Command Line Interface ユーザーガイド*で「[サポート対象 `config` ファイル設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings)」を参照してください。

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" `
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" `
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" `
    --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'
```

------

**`--cli-input-json` ファイルオプションで使用する JSON コンテンツ:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_RestartMyInstances",
    "TaskType": "LAMBDA",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",
            "Qualifier": "$LATEST"
        }
    },
    "Name": "My-Lambda-Task",
    "Description": "A description for my LAMBDA task",
    "Priority": 5
}
```

### Step Functions タスクを登録する
<a name="register-tasks-tutorial-step-functions"></a>

以下の例では、AWS CLI を使用して Step Functions ステートマシンタスクをメンテナンスウィンドウに登録する方法を示しています。

**注記**  
メンテナンスウィンドウタスクは、Step Functions 標準ステートマシンワークフローのみをサポートします。Express ステートマシンワークフローはサポートされていません。ステートマシンワークフロータイプの詳細については、「AWS Step Functions デベロッパーガイド」の「[標準ワークフローと Express ワークフロー](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)」を参照してください。

これらの例では、ステップ関数ステートマシンを作成したユーザーが、`SSMMyStateMachine` というパラメータを指定して、`instanceId` という名前のステートマシンを作成しました。

**重要**  
Maintenance Windows の AWS Identity and Access Management (IAM) ポリシーでは、Step Functions ステートマシン名の前に `SSM` でプレフィックスを付ける必要があります。このタイプのタスクを登録する前に、AWS Step Functions で `SSM` を含めるようにその名前を更新する必要があります。たとえば、ステートマシン名が `MyStateMachine` の場合は、`SSMMyStateMachine` に変更します。

** AWS CLI コマンド:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \
    --task-type STEP_FUNCTIONS \
    --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \
    --priority 0 --max-concurrency 10 --max-errors 5 \
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------
#### [ PowerShell ]

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE `
    --task-type STEP_FUNCTIONS `
    --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' `
    --priority 0 --max-concurrency 10 --max-errors 5 `
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------

**`--cli-input-json` ファイルオプションで使用する JSON コンテンツ:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_MyStateMachine",
    "TaskType": "STEP_FUNCTIONS",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "StepFunctions": {
            "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }",
            "Name": "{{INVOCATION_ID}}"
        }
    },
    "Name": "My-Step-Functions-Task",
    "Description": "A description for my Step Functions task",
    "Priority": 5
}
```

# "register-task-with-maintenance-window" コマンドのパラメーターオプション
<a name="mw-cli-task-options"></a>

**register-task-with-maintenance-window** コマンドには、必要に応じてタスクを設定するためのいくつかのオプションがあります。それらは、必須のオプション、任意のオプション、1 つのメンテナンスウィンドウタスクタイプにのみ適用されるオプションです。

このトピックでは、このチュートリアルのセクションでサンプルを使用するのに役立つ、これらのオプションのいくつかについて情報を提供します。すべてのコマンドオプションについては、*AWS CLI コマンドリファレンス*の「**[https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)**」を参照してください。

**コマンドオプション: `--task-arn`**  
`--task-arn` オプションでは、タスクが実行するリソースを指定するために使用します。以下の表に示しているように、指定する値は登録するタスクのタイプによって異なります。


**メンテナンスウィンドウタスクの TaskArn 形式**  

| メンテナンスウィンドウタスクのタイプ | TaskArn 値 | 
| --- | --- | 
|  **`RUN_COMMAND`** および ** `AUTOMATION`**  |  `TaskArn` は SSM ドキュメント名または Amazon リソースネーム (ARN) です。以下に例を示します。 `AWS-RunBatchShellScript`  -または- `arn:aws:ssm:region:111122223333:document/My-Document`.  | 
|  **`LAMBDA`**  |  `TaskArn` は関数名または ARN です。以下に例を示します。 `SSMMy-Lambda-Function` -または- `arn:aws:lambda:region:111122223333:function:SSMMyLambdaFunction`.  Maintenance Windows の IAM ポリシーでは、Lambda 関数名 (またはエイリアス) の前にプレフィックス `SSM` を付ける必要があります。このタイプのタスクを登録する前に、AWS Lambda で `SSM` を含めるようにその名前を更新します。例えば、Lambda 関数名が `MyLambdaFunction` の場合は、`SSMMyLambdaFunction` に変更します。   | 
|  **`STEP_FUNCTIONS`**  |  `TaskArn` はステートマシン ARN です。以下に例を示します。 `arn:aws:states:us-east-2:111122223333:stateMachine:SSMMyStateMachine`.  メンテナンスウィンドウの IAM ポリシーでは、Step Functions ステートマシン名の前に `SSM` を付ける必要があります。このタイプのタスクを登録する前に、AWS Step Functions を含むように `SSM` の名前を更新する必要があります。たとえば、ステートマシン名が `MyStateMachine` の場合は、`SSMMyStateMachine` に変更します。   | 

**コマンドオプション: `--service-role-arn`**  
メンテナンスウィンドウタスクを実行するときに AWS Systems Manager が引き受けるロール。

詳細については、[Maintenance Windows を設定する](setting-up-maintenance-windows.md)を参照してください。

**コマンドオプション: `--task-invocation-parameters`**  
`--task-invocation-parameters` オプションを使用して、4 つのタスクタイプのそれぞれに固有のパラメータを指定します。以下の表では、4 つのタスクタイプそれぞれでサポートされているパラメータを示しています。

**注記**  
`--task-invocation-parameters` コンテンツでの \$1\$1TARGET\$1ID\$1\$1 などの疑似パラメータの使用については、「[メンテナンスウィンドウのタスクを登録する際の疑似パラメータの使用](maintenance-window-tasks-pseudo-parameters.md)」を参照してください。

メンテナンスウィンドウタスク用のタスク呼び出しパラメータのオプション


| メンテナンスウィンドウタスクのタイプ | 使用できるパラメータ  | 例 | 
| --- | --- | --- | 
|  **`RUN_COMMAND`**  |  `Comment` `DocumentHash` `DocumentHashType` `NotificationConfig` `OutputS3BucketName` `OutPutS3KeyPrefix` `Parameters` `ServiceRoleArn` `TimeoutSeconds`  |  <pre>"TaskInvocationParameters": {<br />        "RunCommand": {<br />            "Comment": "My Run Command task comment",<br />            "DocumentHash": "6554ed3d--truncated--5EXAMPLE",<br />            "DocumentHashType": "Sha256",<br />            "NotificationConfig": {<br />                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",<br />                "NotificationEvents": [<br />                    "FAILURE"<br />                ],<br />                "NotificationType": "Invocation"<br />            },<br />            "OutputS3BucketName": "amzn-s3-demo-bucket",<br />            "OutputS3KeyPrefix": "S3-PREFIX",<br />            "Parameters": {<br />                "commands": [<br />                    "Get-ChildItem$env: temp-Recurse|Remove-Item-Recurse-force"<br />                ]<br />            },<br />            "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",<br />            "TimeoutSeconds": 3600<br />        }<br />    }</pre>  | 
|  **`AUTOMATION`**  |  `DocumentVersion` `Parameters`  |  <pre>"TaskInvocationParameters": {<br />        "Automation": {<br />            "DocumentVersion": "3",<br />            "Parameters": {<br />                "instanceid": [<br />                    "{{TARGET_ID}}"<br />                ]<br />            }<br />        }<br />    }</pre>  | 
|  **`LAMBDA`**  |  `ClientContext` `Payload` `Qualifier`  |  <pre>"TaskInvocationParameters": {<br />        "Lambda": {<br />            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",<br />            "Payload": "{ \"targetId\": \"{{TARGET_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",<br />            "Qualifier": "$LATEST"<br />        }<br />    }</pre>  | 
|  **`STEP_FUNCTIONS`**  |  `Input` `Name`  |  <pre>"TaskInvocationParameters": {<br />        "StepFunctions": {<br />            "Input": "{ \"targetId\": \"{{TARGET_ID}}\" }",<br />            "Name": "{{INVOCATION_ID}}"<br />        }<br />    }</pre>  | 

# チュートリアル: AWS CLI を使用してメンテナンスウィンドウに関する情報を確認する
<a name="maintenance-windows-cli-tutorials-describe"></a>

このチュートリアルでは、メンテナンスウィンドウ、タスク、実行、呼び出しに関する情報の更新や取得に役立つコマンドについて説明します。この例はコマンド別にまとめられており、表示したい詳細の種類をフィルタリングするためにコマンドオプションを使用する方法を示しています。

このチュートリアルの手順に従う際に、斜体の*赤色*テキストの値を、独自のオプションおよび ID に置き換えてください。例えば、メンテナンスウィンドウ ID *mw-0c50858d01EXAMPLE* とインスタンス ID *i-02573cafcfEXAMPLE* を、作成したリソースの ID に置き換えます。

AWS Command Line Interface (AWS CLI) のセットアップと構成については、「[AWS CLI のインストール、更新、アンインストール](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)」および「[AWS CLI の設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。

**Topics**
+ ['describe-maintenance-windows' の例](#mw-cli-tutorials-describe-maintenance-windows)
+ ['describe-maintenance-window-targets' の例](#mw-cli-tutorials-describe-maintenance-window-targets)
+ ['describe-maintenance-window-tasks' の例](#mw-cli-tutorials-describe-maintenance-window-tasks)
+ [「describe-maintenance-windows-for-target」の例](#mw-cli-tutorials-describe-maintenance-windows-for-target)
+ ['describe-maintenance-window-executions'](#mw-cli-tutorials-describe-maintenance-window-executions)
+ ['describe-maintenance-window-schedule'](#mw-cli-tutorials-describe-maintenance-window-schedule)

## 'describe-maintenance-windows' の例
<a name="mw-cli-tutorials-describe-maintenance-windows"></a>

**のすべてのメンテナンスウィンドウを一覧表示するAWS アカウント**  
以下のコマンドを実行してください。

```
aws ssm describe-maintenance-windows
```

システムは以下のような情報を返します。

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**有効なすべてのメンテナンスウィンドウを一覧表示する**  
以下のコマンドを実行してください。

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=true"
```

システムは以下のような情報を返します。

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**無効なすべてのメンテナンスウィンドウを一覧表示する**  
以下のコマンドを実行してください。

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=false"
```

システムは以下のような情報を返します。

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

**特定のプレフィックスから始まる名前を持つすべてのメンテナンスウィンドウを一覧表示する**  
以下のコマンドを実行してください。

```
aws ssm describe-maintenance-windows --filters "Key=Name,Values=My"
```

システムは以下のような情報を返します。

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "Enabled": true,
            "Duration": 2,
            "Cutoff": 0,
            "NextExecutionTime": "2019-05-18T17:01:01.137Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "Enabled": true,
            "Duration": 4,
            "Cutoff": 1,
            "NextExecutionTime": "2019-05-30T03:30:00.137Z"
        },
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

## 'describe-maintenance-window-targets' の例
<a name="mw-cli-tutorials-describe-maintenance-window-targets"></a>

**特定の所有者情報の値に一致するメンテナンスウィンドウのターゲットを表示する**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-targets \
    --window-id "mw-6e5c9d4b7cEXAMPLE" \
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-targets ^
    --window-id "mw-6e5c9d4b7cEXAMPLE" ^
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------

**注記**  
サポートされているフィルタキーは `Type`、`WindowTargetId`、`OwnerInformation` です。

システムは以下のような情報を返します。

```
{
    "Targets": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
            "ResourceType": "INSTANCE",
            "Targets": [
                {
                    "Key": "tag:Name",
                    "Values": [
                        "Production"
                    ]
                }
            ],
            "OwnerInformation": "CostCenter1",
            "Name": "Target1"
        }
    ]
}
```

## 'describe-maintenance-window-tasks' の例
<a name="mw-cli-tutorials-describe-maintenance-window-tasks"></a>

**SSM コマンドドキュメント `AWS-RunPowerShellScript` を呼び出す登録されたタスクをすべて表示する**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------

システムは以下のような情報を返します。

```
{
   "Tasks":[
      {
         "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      },
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "ipconfig"
               ]
            }
         },
         "Priority":1,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"WINDOW_TARGET"
            }
         ]
      }
   ]
}
```

**優先度 "3" の登録されたタスクをすべて表示する**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=Priority,Values=3"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=Priority,Values=3"
```

------

システムは以下のような情報を返します。

```
{
   "Tasks":[
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      }
   ]
}
```

**優先度 "1" および Run Command を使用するすべての登録されたタスクを表示する**  
以下のコマンドを実行してください。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------

システムは以下のような情報を返します。

```
{
    "Tasks": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
            "TaskArn": "AWS-RunShellScript",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-02573cafcfEXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "8a5c4629-31b0-4edd-8aea-33698EXAMPLE",
            "TaskArn": "AWS-UpdateSSMAgent",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-0471e04240EXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1",
            "Name": "My-Run-Command-Task",
            "Description": "My Run Command task to update SSM Agent on an instance"
        }
    ]
}
```

## 「describe-maintenance-windows-for-target」の例
<a name="mw-cli-tutorials-describe-maintenance-windows-for-target"></a>

**特定のノードに関連付けられたメンテナンスウィンドウターゲットまたはタスクに関する情報を一覧表示する**  
以下のコマンドを実行してください。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-windows-for-target \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-windows-for-target ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --max-results 10
```

------

システムは以下のような情報を返します。

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window"
        }
    ]
}
```

## 'describe-maintenance-window-executions'
<a name="mw-cli-tutorials-describe-maintenance-window-executions"></a>

**特定の日付の前に実行されたタスクを一覧表示する**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------

システムは以下のような情報を返します。

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

**特定の日付の後で実行されるすべてのタスクを一覧表示する**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------

システムは以下のような情報を返します。

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

## 'describe-maintenance-window-schedule'
<a name="mw-cli-tutorials-describe-maintenance-window-schedule"></a>

**特定のノードで実行する次の 10 個のスケジュールされたメンテナンスウィンドウを表示する**  
以下のコマンドを実行してください。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" ^
    --max-results 10
```

------

システムは以下のような情報を返します。

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-18T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-25T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-01T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-08T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-15T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-22T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-29T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-06T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-07-13T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-20T23:35:24.902Z"
        }
    ],
    "NextToken": "AAEABUXdceT92FvtKld/dGHELj5Mi+GKW/EXAMPLE"
}
```

**特定のキーと値のペアでタグ付けされたノードのメンテナンスウィンドウのスケジュールを表示する**  
以下のコマンドを実行してください。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=tag:prod,Values=rhel7"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=tag:prod,Values=rhel7"
```

------

システムは以下のような情報を返します。

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-20T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-21T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-22T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-23T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-24T05:34:56-07:00"
        }
    ],
    "NextToken": "AAEABccwSXqQRGKiTZ1yzGELR6cxW4W/EXAMPLE"
}
```

**次の 4 つの開始時間を表示し、メンテナンスウィンドウの実行**  
次のコマンドを実行します。

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --window-id "mw-0c50858d01EXAMPLE" \
    --max-results "4"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --max-results "4"
```

------

システムは以下のような情報を返します。

```
{
    "WindowSchedule": [
        {
            "ScheduledWindowExecutions": [
                {
                    "ExecutionTime": "2019-10-04T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-11T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-18T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-25T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                }
            ]
        }
    ]
}
```

# チュートリアル: AWS CLI を使用してタスクおよびタスク実行に関する情報を確認する
<a name="mw-cli-tutorial-task-info"></a>

このチュートリアルでは、AWS Command Line Interface (AWS CLI) を使用して、完了したメンテナンスウィンドウの実行に関する詳細を表示する方法を説明します。

[チュートリアル: AWS CLI を使用してメンテナンスウィンドウを作成および設定する](maintenance-windows-cli-tutorials-create.md) から直接進む場合は、実行結果を確認するために、メンテナンスウィンドウが少なくとも 1 回実行できる十分な時間があることを確認してください。

このチュートリアルの手順に従う際に、斜体の*赤色*テキストの値を、独自のオプションおよび ID に置き換えてください。例えば、メンテナンスウィンドウ ID *mw-0c50858d01EXAMPLE* とインスタンス ID *i-02573cafcfEXAMPLE* を、作成したリソースの ID に置き換えます。

**AWS CLI を使用してタスクおよびタスク実行に関する情報を確認するには**

1. 以下のコマンドを実行して、特定のメンテナンスウィンドウのタスクの実行を一覧表示します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593793.483,
               "EndTime": 1557593798.978
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
               "Status": "SUCCESS",
               "StatusDetails": "No tasks to execute.",
               "StartTime": 1557593193.309,
               "EndTime": 1557593193.334
           }
       ]
   }
   ```

1. 次のコマンドを実行して、メンテナンスウィンドウのタスクの実行に関する情報を取得します。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskIds": [
           "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
       ],
       "Status": "SUCCESS",
       "StartTime": 1557593493.096,
       "EndTime": 1557593498.611
   }
   ```

1. 次のコマンドを実行して、メンテナンスウィンドウの一部として実行されるタスクリストを実行します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-tasks \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-tasks ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutionTaskIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.162,
               "EndTime": 1557593498.57,
               "TaskArn": "AWS-RunShellScript",
               "TaskType": "RUN_COMMAND"
           }
       ]
   }
   ```

1. 次のコマンドを実行して、タスク実行の詳細を取得します。

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution-task \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution-task ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
       "TaskArn": "AWS-RunShellScript",
       "ServiceRole": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "Type": "RUN_COMMAND",
       "TaskParameters": [
           {
               "aws:InstanceId": {
                   "Values": [
                       "i-02573cafcfEXAMPLE"
                   ]
               },
               "commands": {
                   "Values": [
                       "df"
                   ]
               }
           }
       ],
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1",
       "Status": "SUCCESS",
       "StartTime": 1557593493.162,
       "EndTime": 1557593498.57
   }
   ```

1. 次のコマンドを実行して、タスク実行のために行われた特定のタスク呼び出しを取得します。

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowExecutionTaskInvocationIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "InvocationId": "c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
               "ExecutionId": "76a5a04f-caf6-490c-b448-92c02EXAMPLE",
               "TaskType": "RUN_COMMAND",
               "Parameters": "{\"documentName\":\"AWS-RunShellScript\",\"instanceIds\":[\"i-02573cafcfEXAMPLE\"],\"maxConcurrency\":\"1\",\"maxErrors\":\"1\",\"parameters\":{\"commands\":[\"df\"]}}",
               "Status": "SUCCESS",
               "StatusDetails": "Success",
               "StartTime": 1557593493.222,
               "EndTime": 1557593498.466
           }
       ]
   }
   ```

# チュートリアル : AWS CLI を使用してメンテナンスウィンドウを更新する
<a name="maintenance-windows-cli-tutorials-update"></a>

このチュートリアルでは、メンテナンスウィンドウの更新に AWS Command Line Interface (AWS CLI) を使用する方法を示します。異なるタスクタイプを更新する方法についても説明します。これらには、AWS Systems Manager Run Command と Automation、AWS Lambda、AWS Step Functions が含まれます。

このセクションの例では、メンテナンスウィンドウの更新に次の Systems Manager アクションを使用します。
+ [UpdateMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindow.html)
+ [UpdateMaintenanceWindowTarget](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTarget.html)
+ [UpdateMaintenanceWindowTask](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTask.html)
+ [DeregisterTargetFromMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeregisterTargetFromMaintenanceWindow.html)

Systems Manager コンソールを使用してメンテナンスウィンドウを更新する方法については、「[コンソールを使用してメンテナンスウィンドウリソースを更新または削除する](sysman-maintenance-update.md)」を参照してください。

このチュートリアルの手順に従う際に、斜体の*赤色*テキストの値を、独自のオプションおよび ID に置き換えてください。例えば、メンテナンスウィンドウ ID *mw-0c50858d01EXAMPLE* とインスタンス ID *i-02573cafcfEXAMPLE* を、作成したリソースの ID に置き換えます。

**AWS CLI を使用してメンテナンスウィンドウを更新するには**

1. AWS CLI を開き、次のコマンドを実行して、ターゲットを更新し、名前と説明を含めます。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --description "Description for my maintenance window target"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --description "Description for my maintenance window target"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target",
       "Description": "Description for my maintenance window target"
   }
   ```

1. 次のコマンドを実行し、`replace` オプションを使用して説明フィールドを削除して別のターゲットを追加します。後進に説明フィールドが含まれていない (Null 値) ため、このフィールドは削除されます。Systems Manager で使用するように設定されている追加のノードを必ず指定してください。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --replace
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --replace
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE",
                   "i-0471e04240EXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target"
   }
   ```

1. `start-date` オプションにより、指定した将来の日付までメンテナンスウィンドウのアクティベーションを遅らせることができます。この `end-date` オプションを設定できます。その後、将来の日付と時刻をメンテナンスウィンドウが実行されなくなりました。拡張された形式の ISO-8601 のオプションを指定します。

   次のコマンドを実行し、日時の範囲を指定する場合は定期的にスケジュールされたメンテナンスを実行します。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --start-date "2020-10-01T10:10:10Z" \
       --end-date "2020-11-01T10:10:10Z"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --start-date "2020-10-01T10:10:10Z" ^
       --end-date "2020-11-01T10:10:10Z"
   ```

------

1. 次のコマンドを実行して Run Command タスクを更新します。
**ヒント**  
ターゲットが Windows Server の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの場合は、以下のコマンドで `df` を `ipconfig` に、`AWS-RunShellScript` を `AWS-RunPowerShellScript` に変更します。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "AWS-RunShellScript" \
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" \
       --priority 1 --max-concurrency 10 --max-errors 4 \
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "AWS-RunShellScript" ^
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" ^
       --priority 1 --max-concurrency 10 --max-errors 4 ^
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "Revising my Run Command task",
               "Parameters": {
                   "commands": [
                       "df"
                   ]
               }
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "4",
       "Name": "My-Task-Name",
       "Description": "A description for my Run Command task"
   }
   ```

1. 次のコマンドを調整および実行して Lambda タスクを更新します。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id mw-0c50858d01EXAMPLE \
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' \
       --priority 1 --max-concurrency 10 --max-errors 5 \
       --name "New-Lambda-Task-Name" \
       --description "A description for my Lambda task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id mw-0c50858d01EXAMPLE ^
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' ^
       --priority 1 --max-concurrency 10 --max-errors 5 ^
       --name "New-Lambda-Task-Name" ^
       --description "A description for my Lambda task"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
           }
       ],
       "TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestLambda",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Lambda": {
               "Payload": "e30="
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "New-Lambda-Task-Name",
       "Description": "A description for my Lambda task"
   }
   ```

1. Step Functions タスクを更新する場合は、task-invocation-parameters を更新するように以下のコマンドを調整して実行します。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' \
       --priority 0 --max-concurrency 10 --max-errors 5 \
       --name "My-Step-Functions-Task" \
       --description "A description for my Step Functions task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' ^
       --priority 0 --max-concurrency 10 --max-errors 5 ^
       --name "My-Step-Functions-Task" ^
       --description "A description for my Step Functions task"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "arn:aws:states:us-east-2:111122223333:execution:SSMStepFunctionTest",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "StepFunctions": {
               "Input": "{\"instanceId\":\"{{RESOURCE_ID}}\"}"
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Step-Functions-Task",
       "Description": "A description for my Step Functions task"
   }
   ```

1. 以下のコマンドを実行して、メンテナンスウィンドウからターゲットを登録解除します。この例では、`safe` パラメータを使用してターゲットがタスクから参照されているかどうかを判別しているため、安全に登録解除できます。

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --safe
   ```

------

   システムは以下のような情報を返します。

   ```
   An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: 
   This Target cannot be deregistered because it is still referenced in Task: 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

1. 次のコマンドを実行して、ターゲットがタスクから参照されている場合でもメンテナンスウィンドウからターゲットを登録解除します。`no-safe` パラメータを使用して、登録解除オペレーションを強制できます。

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --no-safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --no-safe
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. 次のコマンドを実行して Run Command タスクを更新します。この例では、`UpdateLevel` という名前の Systems Manager Parameter Store パラメータを「`{{ssm:UpdateLevel}}`」という形式で使用しています。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  \
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  ^
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "A comment for my task update",
               "Parameters": {
                   "UpdateLevel": [
                       "{{ssm:UpdateLevel}}"
                   ]
               }
           }
       },
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1"
   }
   ```

1. 次のコマンドを実行してオートメーションタスクを更新し、`WINDOW_ID` パラメータに `WINDOW_TASK_ID` パラメータと `task-invocation-parameters` パラメータを指定します。

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \
       --task-arn "AutoTestDoc" \
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole \
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" \
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^
       --task-arn "AutoTestDoc" ^
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole ^
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" ^
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------

   システムは以下のような情報を返します。

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AutoTestDoc",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Automation": {
               "Parameters": {
                   "multi": [
                       "{{WINDOW_TASK_ID}}"
                   ],
                   "single": [
                       "{{WINDOW_ID}}"
                   ]
               }
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Automation-Task",
       "Description": "A description for my Automation task"
   }
   ```

# チュートリアル: AWS CLI を使用してメンテナンスウィンドウを削除する
<a name="mw-cli-tutorial-delete-mw"></a>

これらのチュートリアルで作成したメンテナンスウィンドウを削除するには、次のコマンドを実行します。

```
aws ssm delete-maintenance-window --window-id "mw-0c50858d01EXAMPLE"
```

システムは以下のような情報を返します。

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

# チュートリアル: コンソールを使用してパッチ用メンテナンスウィンドウを作成する
<a name="maintenance-window-tutorial-patching"></a>

**重要**  
このレガシートピックを引き続き使用してパッチ適用のためのメンテナンスウィンドウを作成することができます。ただし、代わりにパッチポリシーを使用することをお勧めします。詳細については、「[Quick Setup でのパッチポリシー設定](patch-manager-policies.md)」および「[Quick Setup パッチポリシーを使用して組織内のインスタンスのためにパッチ適用を設定する](quick-setup-patch-manager.md)」を参照してください。

サーバーの可用性に対する影響を最小限に抑えるため、メンテナンスウィンドウを設定して事業運営を中断させない時間帯にパッチ適用を実行することをお勧めします。

この手順を開始する前に、AWS Systems Manager のツールである Maintenance Windows のロールおよびアクセス許可を設定する必要があります。詳細については、「[Maintenance Windows を設定する](setting-up-maintenance-windows.md)」を参照してください。

**パッチ適用のメンテナンスウィンドウを作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[Maintenance Windows]** を選択します。

1. [**Create maintenance window**] を選択します。

1. [**Name**] に、緊急および重要な更新プログラムのパッチを適用するメンテナンスウィンドウとして、これを指定する名前を入力します。

1. (オプション) **[説明]** に説明を入力します。

1. ノードをがターゲットとして登録されていない場合でも、そのマネージドノードでメンテナンスウィンドウタスクの実行を許可する場合は、[**Allow unregistered targets**] (未登録ターゲットを許可) を選択します。

   このオプションを選択すると、タスクをメンテナンスウィンドウに登録する際に、未登録ノードを (ノード ID で) 選択できます。

   このオプションを選択しない場合、タスクをメンテナンスウィンドウに登録する際に、事前に登録済みのターゲットを選択する必要があります。

1. [**スケジュール** ] セクションの上部で、3 つのスケジュールオプションのいずれかを使用して、メンテナンスウィンドウのスケジュールを指定します。

   cron/rate 式の作成の詳細については、「[リファレンス: Systems Manager の cron 式および rate 式](reference-cron-and-rate-expressions.md)」を参照してください。

1. [**期間**] に、メンテナンスウィンドウを実行する時間数を入力します。指定する値は、開始時刻に基づいてメンテナンスウィンドウの具体的な終了時刻を決定します。メンテナンスウィンドウタスクは、決定された終了時刻から、次のステップで [**タスクの開始を停止**] に指定する時間数を引いて求められる時刻の後に開始することは許可されません。

   たとえば、メンテナンスウィンドウが午後 3 時に開始され、期間が 3 時間で、[**タスクの開始を停止**] の値が 1 時間の場合、午後 5 時以降はメンテナンスウィンドウのタスクを開始できません。

1. [**Stop initiating tasks**] に、メンテナンスウィンドウが終了してから新しいタスクの実行のスケジュールが停止されるまでの時間数を入力します。

1. (オプション) **[Window start date]** (ウィンドウ開始日) で、メンテナンスウィンドウをアクティブにする日時を ISO-8601 拡張形式で指定します。これにより、指定した将来の日付までメンテナンスウィンドウのアクティベーションを遅らせることができます。

1. (オプション) **[Window end date]** (ウィンドウ終了日) で、メンテナンスウィンドウを非アクティブにする日時を ISO-8601 拡張形式で指定します。これにより、メンテナンスウィンドウの実行を停止する将来の日時を設定できるようになります。

1. (オプション) **[タイムゾーンのスケジュール]** で、スケジュールされたメンテナンスウィンドウの実行の基準となるタイムゾーンを、IANA (Internet Assigned Numbers Authority) 形式で指定できます。例: 「America/Los\$1Angeles」、「etc/UTC」、または「Asia/Seoul」。

   有効な形式の詳細については、IANA ウェブサイトの「[Time Zone Database](https://www.iana.org/time-zones)」を参照してください。

1. (オプション) [**タグの管理**] 領域で、1 つ以上のタグキーの名前と値のペアをメンテナンスウィンドウに適用します。

   タグは、リソースに割り当てるオプションのメタデータです。タグを使用すると、目的、所有者、環境などのさまざまな方法でリソースを分類できます。例えば、このメンテナンスウィンドウにタグを付けて、実行するタスクのタイプを指定できます。この場合、以下のキーの名前と値のペアを指定します。
   + `Key=TaskType,Value=Patching`

1. [**Create maintenance window**] を選択します。

1. メンテナンスウィンドウのリストで、作成したメンテナンスウィンドウを選択し、[**Actions**]、[**Register targets**] の順に選択します。

1. (オプション) [**Maintenance window target details**] セクションで、このターゲットの名前、説明、所有者情報 (自分の名前またはエイリアス) を指定します。

1. **[ターゲットの選択]** で、**[インスタンスタグの指定]** を選択します。

1. **[インスタンスタグの指定]** で、メンテナンスウィンドウに登録するノードを識別するためのタグキーとタグ値を入力し、**[追加]** を選択します。

1. [**Register target**] を選択します。メンテナンスウィンドウのターゲットが作成されます。

1. 作成したメンテナンスウィンドウの詳細ページで、[**アクション**]、[**run command タスクの登録**] の順に選択します。

1. (オプション) [**Maintenance window task details (メンテナンスウィンドウのタスクの詳細)**] に、このタスクの名前と説明を入力します。

1. [**Command document**] (コマンドのドキュメント) で、`AWS-RunPatchBaseline` を選択します。

1. [**Task priority (タスクの優先度)**] で、優先度を選択します。ゼロ (`0`) が最高の優先度になります。

1. [**Targets (ターゲット)**] の [**Target by (ターゲットの条件)**] で、この手順の前半で作成したメンテナンスウィンドウターゲットを選択します。

1. **[レート制御]** の場合:
   + **[同時実行数]** の場合、コマンドを同時に実行するマネージドノードの数または割合を指定します。
**注記**  
マネージドノードに適用されるタグを指定するか、AWS リソースグループを指定してターゲットを選択し、ターゲットとなるマネージドノードの数が不明な場合は、割合を指定してドキュメントを同時に実行できるターゲットの数を制限します。
   + **[エラーのしきい値]** で、ノードの数または割合のいずれかで失敗した後、他のマネージドノードでのコマンドの実行をいつ停止するか指定します。例えば、3 つのエラーを指定した場合、4 番目のエラーが受信されると、システムマネージャー はコマンドの送信を停止します。コマンドを処理しているマネージドノードもエラーを送信する可能性があります。

1. (オプション) **[IAM サービスロール]** で、Systems Manager がメンテナンスウィンドウタスクの実行時期を推測するための許可を付与するロールを選択します。

   サービスロール ARN を指定しない場合、Systems Manager はアカウントのサービスにリンクされたロールを使用します。アカウントに Systems Manager 用の適切なサービスにリンクされたロールが存在しない場合は、タスクが正常に登録されるとロールが作成されます。
**注記**  
セキュリティ体制を強化するために、メンテナンスウィンドウタスクを実行するためのカスタムポリシーとカスタムサービスロールを作成することを強くお勧めします。ポリシーは、特定のメンテナンスウィンドウタスクに必要なアクセス許可のみを提供するように作成できます。詳細については、「[Maintenance Windows を設定する](setting-up-maintenance-windows.md)」を参照してください。

1. (オプション) [**出力オプション**] で、コマンド出力をファイルに保存するには、[**S3 への出力の書き込みを有効にします**] ボックスをオンにします。ボックスにバケット名とプレフィックス (フォルダ) 名を入力してください。
**注記**  
S3 バケットにデータを書き込む機能を許可する S3 アクセス許可は、このタスクを実行する IAM ユーザーのものではなく、マネージドノードに割り当てられたインスタンスプロファイルのものです。詳細については、「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」または「[ハイブリッド環境に IAM サービスロールを作成する](hybrid-multicloud-service-role.md)」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールに、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。

   Amazon CloudWatch Logs ロググループに出力をストリーミングするには、[**CloudWatch 出力**] ボックスを選択します。ボックスにロググループ名を入力します。

1. [**SNS Notifications (SNS 通知)**] セクションで、コマンドの実行状態に関する通知を受け取る場合は、[**Enable SNS notifications (SNS 通知を有効にする)**] チェックボックスをオンにします。

   Run Command 用の Amazon SNS 通知の設定の詳細については、「[Amazon SNS 通知を使用した Systems Manager のステータス変更のモニタリング](monitoring-sns-notifications.md)」を参照してください。

1. [**Parameters (パラメータ)**]。
   + [**Operation (オペレーション)**] リストで、[**Scan (スキャン)**] を選択して見つからないパッチをスキャンするか、[**Install (インストール)**] を選択して見つからないパッチをスキャンしてインストールします。
   + [**Snapshot Id (スナップショット ID)**] フィールドには何も指定する必要がありません。このシステムでは、このパラメータが自動的に生成されて提供されます。
   + パッチベースラインに指定されているものとは異なるパッチのセットをPatch Managerで使用する場合を除き、[**Install Override List (インストール上書きリスト)**] フィールドには何も入力する必要はありません。詳細については、「[パラメータ名: `InstallOverrideList`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-installoverridelist)」を参照してください。
   + **[再起動オプション]** で、`Install` オペレーション中にパッチがインストールされた場合にノードを再起動するか、Patch Manager が前回のノードの再起動後にインストールされた他のパッチを検出した場合にノードを再起動するかを指定します。詳細については、「[パラメータ名: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption)」を参照してください。
   + (オプション) [**Comment (コメント)**] に、このコマンドに関する追跡メモまたはリマインダーを入力します。
   + [**Timeout (seconds) (タイムアウト (秒))**] に、オペレーションが完了せずに失敗したとみなされるまでにシステムが待機する秒数を入力します。

1. [**Register Run command task** (Run command タスクの登録)] を選択します。

メンテナンスウィンドウタスクが完了したら、[Fleet Manager](fleet-manager.md) ツールの Systems Manager コンソールで、パッチコンプライアンスの詳細を確認できます。

あるいは [Patch Manager](patch-manager.md) ツールの **[コンプライアンスレポート]** タブでコンプライアンス情報を確認することもできます。

[DescribePatchGroupState](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchGroupState.html) と [DescribeInstancePatchStatesForPatchGroup](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstancePatchStatesForPatchGroup.html) の API を使用してコンプライアンスの詳細を確認することもできます。パッチコンプライアンスデータの詳細については、「[パッチコンプライアンスについて](compliance-about.md#compliance-monitor-patch)」を参照してください。

# メンテナンスウィンドウを使用してスケジュールにパッチを適用する
<a name="sysman-patch-scheduletasks"></a>

パッチベースライン (およびオプションのパッチグループ) を設定したら、メンテナンスウィンドウを使用してパッチをノードに適用できます。メンテナンスウィンドウは、パッチ適用プロセスを実行する時間を、事業運営を中断させない時間に指定することで、サーバーの可用性に対する影響を軽減させることができます。メンテナンスウィンドウの動作は次のようになります。

1. メンテナンスウィンドウを作成してパッチ適用オペレーションをスケジュールします。

1. `Patch Group` または `PatchGroup` タグ、Amazon Elastic Compute Cloud (Amazon EC2) タグを定義した値 (「Web サーバー」、「US-EAST-PROD」など) を指定して、メンテナンスウィンドウのターゲットを選択します。([EC2 インスタンスのメタデータでタグを許可](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS)している場合は、スペースなしで `PatchGroup` を使用する必要があります。)

1. 新しいメンテナンスウィンドウタスクを作成し、`AWS-RunPatchBaseline`ドキュメントを指定します。

タスクを設定するときに、ノードをスキャンするか、ノードをスキャンしてパッチをインストールするかを選択できます。ノードのスキャンを選択すると、AWS Systems Manager のツールである Patch Manager は各ノードをスキャンし、見つからないパッチのリストを生成して確認できるようにします。

パッチのスキャンとインストールを選択すると、Patch Manager は各ノードをスキャンし、インストールされているパッチのリストとベースラインの承認済みパッチのリストを照合します。Patch Manager は不足しているパッチを特定し、不足しているすべての承認済みパッチをダウンロードしてインストールします。

問題を解決するためにスキャンやインストールを 1 回のみ実行する場合は、Run Command を使用して `AWS-RunPatchBaseline` ドキュメントを直接呼び出すことができます。

**重要**  
パッチをインストールすると、Systems Manager によって各ノードが再起動されます。再起動は、パッチが正しくインストールされていることを確認し、ノードを適切な状態に更新するために必要です。(例外: `RebootOption` パラメータが `AWS-RunPatchBaseline` ドキュメントの `NoReboot` で設定されている場合、パッチマネージャーの Patch Manager 実行後にマネージドノードは再起動されません。詳細については、「[パラメータ名: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption)」を参照してください。) 