イベントに基づくオートメーションの実行 - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

イベントに基づくオートメーションの実行

Amazon EventBridge イベントのターゲットとしてランブックを指定することで、オートメーションを開始できます。オートメーションは、スケジュールに従って、または特定の AWS システムイベントが発生したときに開始できます。例えば、インスタンスの起動時にインスタンスにソフトウェアBootStrapInstancesをインストールする という名前のランブックを作成するとします。BootStrapInstances ランブック (および対応するオートメーション) を EventBridge イベントのターゲットとして指定するには、まず新しい EventBridge ルールを作成します。(ルール例は次のとおりです: Service name: EC2、Event Type: EC2 Instance State-change Notification、Specific state(s): running、Any instance。) 次に、次の手順を使用して、 EventBridge コンソールと AWS Command Line Interface () を使用してBootStrapInstances、ランブックをイベントのターゲットとして指定しますAWS CLI。新しいインスタンスが起動すると、システムによってオートメーションが実行されソフトウェアがインストールされます。

ランブックの作成の詳細については、「独自のランブックの作成」を参照してください。

ランブックを使用する EventBridge イベントの作成 (コンソール)

ランブックを EventBridge イベントのターゲットとして設定するには、以下の手順を使用します。

ランブックを EventBridge イベントルールのターゲットとして設定するには
  1. https://console.aws.amazon.com/events/ で Amazon EventBridge コンソールを開きます。

  2. ナビゲーションペインで Rules] (ルール) を選択します。

  3. ルールの作成‭ を選択します。

  4. ルールの名前と説明を入力します。

    ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。

  5. Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールが独自の から発生した一致するイベントに応答するようにする場合は AWS アカウント、デフォルトの を選択します。アカウントの AWS のサービス がイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。

  6. ルールをトリガーする方法を選択します。

    ... に基づきルールを作成するには 手順

    イベント

    1. ルールタイプ では、イベントパターンを持つルール] を選択します。

    2. 次へ をクリックします。

    3. イベントソース で、AWS イベント または EventBridge パートナーイベント を選択します。

    4. [Event pattern] (イベントパターン) セクションで次のいずれかを実行します。

      • テンプレートを使用してイベントパターンを作成するには、[Event pattern form] (イベントパターンのフォーム) を選択し、[Event source] (イベントソース)、[AWS service][Event type] (イベントタイプ) を選択します。イベントタイプとしてすべてのイベントを選択すると、 によって出力されるすべてのイベント AWS のサービス がルールと一致します。

        テンプレートをカスタマイズするには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択して変更します。

      • カスタムイベントパターンを使用するには、[Custom pattern (JSON editor)] (カスタムパターン (JSON エディタ)) を選択し、イベントパターンを作成します。

    スケジュール
    1. [Rule type] (ルールタイプ) では、[Schedule] (スケジュール) を選択します。

    2. [次へ] を選択します。

    3. [Schedule pattern] (スケジュールパターン) では、次のいずれかを実行します。

      • Cron 式を使用してスケジュールを定義するには、午前 8 時など、特定の時間に実行されるきめ細かいスケジュールを選択します。毎月最初の月曜日の PST に、cron 式を入力します。

      • rate 式を使用してスケジュールを定義するには、10 分ごとなど、通常レートで実行されるスケジュールを選択し、rate 式を入力します。

  7. 次へ をクリックします。

  8. ターゲットタイプ] では、AWS サービス] を選択します。

  9. [Select a target] (ターゲットを選択) では、[Systems Manager オートメーション] を選択します。

  10. [Document (ドキュメント)] で、ターゲットが呼び出されたときに使用するランブックを選択します。

  11. [Configure automation parameter(s)] (自動化パラメータの設定) を展開して、デフォルトのパラメータ値 (使用可能な場合) のままにするか、独自の値を入力します。

    注記

    ターゲットを作成するには、各必須パラメータの値を指定する必要があります。指定しない場合、ルールは作成されますが、実行はされません。

  12. 多くのターゲットタイプでは、 にターゲットにイベントを送信するためのアクセス許可 EventBridge が必要です。このような場合は、ルールの実行に必要な IAM ロール EventBridge を作成できます。次のいずれかを行います。

    • 自動的に IAM ロールを作成するには、この特定のリソースに対して新しいロールを作成する を選択します。

    • 以前に作成した IAM ロールを使用するには、[Use existing role] (既存のロールの使用) を選択し、ドロップダウンから既存のロールを選択します。を含めるには、IAM ロールの信頼ポリシーを更新する必要がある場合があります EventBridge。以下に例を示します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  13. 次へ をクリックします。

  14. (オプション) ルールに 1 つ以上のタグを入力します。詳細については、「Amazon ユーザーガイド」の「Amazon EventBridge リソースのタグ付け」を参照してください。 EventBridge

  15. 次へ をクリックします。

  16. ルールの詳細を確認し、ルールの作成 を選択します。

ランブックを使用する EventBridge イベントを作成する (コマンドライン)

次の手順では、 AWS CLI (Linux または Windows の場合) または AWS Tools for PowerShell を使用して EventBridge イベントルールを作成し、ランブックをターゲットとして設定する方法について説明します。

ランブックを EventBridge イベントルールのターゲットとして設定するには
  1. まだ AWS CLI または をインストールして設定していない場合は AWS Tools for PowerShell、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」および「AWS Tools for PowerShell のインストール」を参照してください。

  2. 新しい EventBridge イベントルールを指定するコマンドを作成します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    スケジュールに基づいてトリガー

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --schedule-expression "cron or rate expression"
    Windows
    aws events put-rule ^ --name "rule name" ^ --schedule-expression "cron or rate expression"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -ScheduleExpression "cron or rate expression"

    次の例では、毎日午前 9:00 (UTC) に開始される EventBridge イベントルールを作成します。

    Linux & macOS
    aws events put-rule \ --name "DailyAutomationRule" \ --schedule-expression "cron(0 9 * * ? *)"
    Windows
    aws events put-rule ^ --name "DailyAutomationRule" ^ --schedule-expression "cron(0 9 * * ? *)"
    PowerShell
    Write-CWERule ` -Name "DailyAutomationRule" ` -ScheduleExpression "cron(0 9 * * ? *)"

    イベントに基づいてトリガー

    Linux & macOS
    aws events put-rule \ --name "rule name" \ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    Windows
    aws events put-rule ^ --name "rule name" ^ --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
    PowerShell
    Write-CWERule ` -Name "rule name" ` -EventPattern '{"source":["aws.service"],"detail-type":["service event detail type"]}'

    次の例では、 リージョンの EC2 インスタンスの状態が変更されたときに開始する EventBridge イベントルールを作成します。

    Linux & macOS
    aws events put-rule \ --name "EC2InstanceStateChanges" \ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    Windows
    aws events put-rule ^ --name "EC2InstanceStateChanges" ^ --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
    PowerShell
    Write-CWERule ` -Name "EC2InstanceStateChanges" ` -EventPattern '{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"]}'

    コマンドは、次のような新しい EventBridge ルールの詳細を返します。

    Linux & macOS
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    Windows
    {
    "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
    }
    PowerShell
    arn:aws:events:us-east-1:123456789012:rule/EC2InstanceStateChanges
  3. ステップ 2 で作成した EventBridge イベントルールのターゲットとしてランブックを指定するコマンドを作成します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

    Linux & macOS
    aws events put-targets \ --rule rule name \ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    Windows
    aws events put-targets ^ --rule rule name ^ --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"input parameter\":[\"value\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "target ID" $Target.Arn = "arn:aws:ssm:region:account ID:automation-definition/runbook name" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/EventBridge service role" $Target.Input = '{"input parameter":["value"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "rule name" ` -Target $Target

    次の例では、ランブック を使用して、指定されたインスタンス ID を起動する EventBridge イベントターゲットを作成しますAWS-StartEC2Instance

    Linux & macOS
    aws events put-targets \ --rule DailyAutomationRule \ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    Windows
    aws events put-targets ^ --rule DailyAutomationRule ^ --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
    PowerShell
    $Target = New-Object Amazon.CloudWatchEvents.Model.Target $Target.Id = "Target1" $Target.Arn = "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance" $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520" $Target.Input = '{"InstanceId":["i-02573cafcfEXAMPLE"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}' Write-CWETarget ` -Rule "DailyAutomationRule" ` -Target $Target

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

    Linux & macOS
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    Windows
    {
    "FailedEntries": [],
    "FailedEntryCount": 0
    }
    PowerShell

    のコマンドが成功した場合、出力はありません PowerShell。