Run Command を使用してステータス通知を返すコマンドを送信する - AWS Systems Manager

Run Command を使用してステータス通知を返すコマンドを送信する

以下の手順は、AWS Command Line Interface (AWS CLI) または AWS Systems Manager コンソールを使用し、ステータス通知を返すように設定されている Run Command (AWS Systems Manager の一機能) 経由でコマンドを送信する方法を示しています。

通知を返す Run Command の送信 (コンソール)

Systems Manager コンソールを使用してステータス通知を返すように設定されているコマンドを Run Command 経由で送信するには、以下の手順を使用します。

通知を返すコマンドを送信するには (コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Run Command] を選択します。

  3. [Run command (コマンドの実行)] を選択します。

  4. [Command document] リストで、Systems Manager ドキュメントを選択します。

  5. [Command parameters] セクションで、必須パラメータの値を指定します。

  6. [Targets] (ターゲット) セクションで、タグの指定、インスタンスやエッジデバイスの手動選択、リソースグループの指定により、このオペレーションを実行するマネージドノードを選択します。

    ヒント

    表示されるはずのマネージドノードが表示されない場合は、トラブルシューティングのヒントについて「マネージドノードの可用性のトラブルシューティング」を参照してください。

  7. [その他のパラメータ] で、以下の操作を行います。

    • [コメント] に、このコマンドに関する情報を入力します。

    • [タイムアウト (秒)] に、コマンドの実行全体が失敗するまでにシステムが待機する秒数を指定します。

  8. [レート制御] の場合:

    • [同時実行数] の場合、コマンドを同時に実行するマネージドノードの数または割合を指定します。

      注記

      マネージドノードに適用されるタグを指定するか、AWS リソースグループを指定してターゲットを選択し、ターゲットとなるマネージドノードの数が不明な場合は、割合を指定してドキュメントを同時に実行できるターゲットの数を制限します。

    • [エラーのしきい値] で、ノードの数または割合のいずれかで失敗した後、他のマネージドノードでのコマンドの実行をいつ停止するか指定します。例えば、3 つのエラーを指定した場合、4 番目のエラーが受信されると、Systems Manager はコマンドの送信を停止します。コマンドを処理しているマネージドノードもエラーを送信する可能性があります。

  9. (オプション) コマンド出力をファイルに保存する場合は、[出力オプション][S3 バケットにコマンド出力を書き込む] ボックスを選択します。ボックスにバケット名とプレフィックス (フォルダ) 名を入力します。

    注記

    S3 バケットにデータを書き込む機能を許可する S3 許可は、このタスクを実行する IAM ユーザーのものではなく、インスタンスに割り当てられたインスタンスプロファイル (EC2 インスタンスの場合) または IAM サービスロール (ハイブリッドアクティベーションマシン) のものです。詳細については、「Systems Manager に必要なインスタンスのアクセス許可を設定する」または「ハイブリッド環境に IAM サービスロールを作成する」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールが、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。

  10. [SNS Notifications (SNS 通知)] セクションで、[Enable SNS notifications (SNS 通知の有効化)] を選択します。

  11. [IAM role] (IAM ロール) で、Amazon SNS 通知を使用した Systems Manager のステータス変更のモニタリング のタスク 3 で作成した Amazon SNS IAM ロール ARN を選択します。

  12. [SNS topic (SNS トピック)] では、使用する Amazon SNS トピック ARN を入力します。

  13. [Event notifications (イベント通知)] の場合は、通知を受け取るイベントを選択します。

  14. [Change notifications] (変更通知) で、コマンドの概要のみ ([Command status changes] (コマンドステータスの変更)) または複数のノードに送信されたコマンドの各コピー ([Command status on each instance changes] (各インスタンスのコマンドステータスの変更)) の通知を受信するように選択します。

  15. [Run (実行)] を選択します。

  16. Amazon SNS からのメッセージが E メールされていることを確認し、E メールを開きます。Amazon SNS では、E メールメッセージの送信に数分かかる場合があります。

通知を返す Run Command の送信 (CLI)

次の手順を使用して、AWS CLI を使用してステータス通知を返すように設定されたコマンドを Run Command 経由で送信します。

通知を返すコマンドを送信するには (CLI)
  1. AWS CLI を開きます。

  2. 以下のコマンドで、マネージドインスタンス ID に基づいてターゲットとなるパラメータを指定します。

    aws ssm send-command --instance-ids "ID-1, ID-2" --document-name "Name" --parameters '{"commands":["input"]}' --service-role "SNSRoleARN" --notification-config '{"NotificationArn":"SNSTopicName","NotificationEvents":["All"],"NotificationType":"Command"}'

    次に例を示します。

    aws ssm send-command --instance-ids "i-02573cafcfEXAMPLE, i-0471e04240EXAMPLE" --document-name "AWS-RunPowerShellScript" --parameters '{"commands":["Get-Process"]}' --service-role "arn:aws:iam::111122223333:role/SNS_Role" --notification-config '{"NotificationArn":"arn:aws:sns:us-east-1:111122223333:SNSTopic","NotificationEvents":["All"],"NotificationType":"Command"}'
    代替コマンド

    タグを使用してマネージドインスタンスをターゲットにするには、以下のコマンドでパラメータを指定します。

    aws ssm send-command --targets "Key=tag:TagName,Values=TagKey" --document-name "Name" --parameters '{"commands":["input"]}' --service-role "SNSRoleARN" --notification-config '{"NotificationArn":"SNSTopicName","NotificationEvents":["All"],"NotificationType":"Command"}'

    次に例を示します。

    aws ssm send-command --targets "Key=tag:Environment,Values=Dev" --document-name "AWS-RunPowerShellScript" --parameters '{"commands":["Get-Process"]}' --service-role "arn:aws:iam::111122223333:role/SNS_Role" --notification-config '{"NotificationArn":"arn:aws:sns:us-east-1:111122223333:SNSTopic","NotificationEvents":["All"],"NotificationType":"Command"}'
  3. [Enter] キーを押します。

  4. Amazon SNS からのメッセージが E メールされていることを確認し、E メールを開きます。Amazon SNS では、E メールメッセージの送信に数分かかる場合があります。

詳細については、AWS CLI コマンドリファレンスsend-command を参照してください。