Führen Sie Automatisierungen auf EventBridge der Grundlage von Ereignissen aus - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Führen Sie Automatisierungen auf EventBridge der Grundlage von Ereignissen aus

Sie können eine Automatisierung starten, indem Sie ein Runbook als Ziel eines EventBridge Amazon-Events angeben. Sie können Automatisierungen nach einem Zeitplan oder beim Eintreten eines bestimmten AWS -Ereignisses starten. Nehmen wir zum Beispiel an, Sie erstellen ein Runbook mit dem Namen BootStrapInstances, dass beim Start einer Instance Software auf einer Instance installiert. Um das BootStrapInstancesRunbook (und die entsprechende Automatisierung) als Ziel eines EventBridge Ereignisses anzugeben, erstellen Sie zunächst eine neue EventBridge Regel. (Hier ist eine Beispielregel: Dienstname:EC2, Ereignistyp: Benachrichtigung über Änderung des EC2 Instanzstatus, Spezifischer Status: läuft, Beliebige Instanz.) Anschließend verwenden Sie die folgenden Verfahren, um mithilfe der EventBridge Konsole und AWS Command Line Interface ()AWS CLI das BootStrapInstancesRunbook als Ziel des Ereignisses anzugeben. Beim Starten einer neuen Instance führt das System die Automatisierung aus und installiert Software.

Weitere Informationen zum Erstellen eines Runbooks finden Sie unter Erstellen Ihrer eigenen Runbooks.

Erstellen eines EventBridge Ereignisses, das ein Runbook (Konsole) verwendet

Gehen Sie wie folgt vor, um ein Runbook als Ziel eines EventBridge Ereignisses zu konfigurieren.

So konfigurieren Sie ein Runbook als Ziel einer Ereignisregel EventBridge
  1. Öffnen Sie die EventBridge Amazon-Konsole unter https://console.aws.amazon.com/events/.

  2. Wählen Sie im Navigationsbereich Rules aus.

  3. Wählen Sie Regel erstellen aus.

  4. Geben Sie einen Namen und eine Beschreibung für die Regel ein.

    Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.

  5. Wählen Sie für Event Bus den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel auf übereinstimmende Ereignisse reagiert, die von Ihnen selbst stammen AWS-Konto, wählen Sie Standard. Wenn ein AWS -Service in Ihrem Konto ein Ereignis ausgibt, wird es immer an den Standard-Event-Bus Ihres Kontos weitergeleitet.

  6. Wählen Sie aus, wie die Regel ausgelöst wird.

    So erstellen Sie eine Regel auf der Basis von … Vorgehensweise

    Ereignis

    1. Bei Rule type (Regeltyp) wählen Sie Rule with an event pattern (Regel mit einem Ereignismuster) aus.

    2. Wählen Sie Weiter.

    3. Wählen Sie als Eventquelle AWS Events oder EventBridge Partnerevents aus.

    4. Führen Sie im Abschnitt Event pattern (Ereignismuster) einen der folgenden Schritte aus:

      • Um eine Vorlage zum Erstellen Ihres Ereignismusters zu verwenden, wählen Sie Event pattern form (Ereignismusterformular) und wählen Sie Event source (Ereignisquelle), AWS service (-Service) und Event type (Ereignistyp). Wenn Sie „Alle Ereignisse“ als Ereignistyp wählen, entsprechen alle von der AWS -Service ausgegebenen Ereignisse der Regel.

        Um die Vorlage anzupassen, wählen Sie Benutzerdefiniertes Muster (JSONEditor) und nehmen Sie Ihre Änderungen vor.

      • Um ein benutzerdefiniertes Event-Muster zu verwenden, wählen Sie Benutzerdefiniertes Muster (JSONEditor) und erstellen Sie Ihr Event-Muster.

    Plan
    1. Wählen Sie unter Rule type (Regeltyp) die Option Schedule (Zeitplan) aus.

    2. Wählen Sie Weiter.

    3. Gehen Sie bei Schedule pattern (Zeitplanmuster) wie folgt vor:

      • Um den Zeitplan mithilfe eines Cron-Ausdrucks zu definieren, wählen Sie A fine-grained schedule that runs at a specific time, such as 8:00 a.m. PSTam ersten Montag eines jeden Monats und geben Sie den Cron-Ausdruck ein.

      • Um den Zeitplan mithilfe eines Rate-Ausdrucks zu definieren, wählen Sie A schedule that runs at a regular rate, such as every 10 minutes (Zeitplan, der mit einer regulären Rate läuft, z. B. alle 10 Minuten) und geben Sie den Rate-Ausdruck ein.

  7. Wählen Sie Weiter.

  8. Bei Target types (Zieltypen) wählen Sie AWS -Service aus.

  9. Für Select target (Ziel auswählen), wählen Sie Systems Manager Automation.

  10. Wählen Sie für Dokument ein Runbook aus, das Sie verwenden möchten, wenn das Ziel aufgerufen wird.

  11. Behalten Sie im Abschnitt Configure automation parameter(s) (Automatisierungsparameter konfigurieren) entweder die Standardparameterwerte bei (sofern verfügbar) oder geben Sie Ihre eigenen Werte ein.

    Anmerkung

    Um ein Ziel zu erstellen, müssen Sie bei jedem erforderlichen Parameter einen Wert angeben. Wenn Sie dies nicht tun, erstellt das System die Regel, aber die Regel wird nicht ausgeführt.

  12. Für viele Zieltypen sind EventBridge Berechtigungen erforderlich, um Ereignisse an das Ziel zu senden. In diesen Fällen EventBridge kann die IAM Rolle erstellt werden, die für die Ausführung Ihrer Regel erforderlich ist. Führen Sie eine der folgenden Aktionen aus:

    • Um eine IAM Rolle automatisch zu erstellen, wählen Sie Neue Rolle für diese spezifische Ressource erstellen aus.

    • Um eine IAM Rolle zu verwenden, die Sie zuvor erstellt haben, wählen Sie Bestehende Rolle verwenden und wählen Sie die vorhandene Rolle aus der Dropdownliste aus. Beachten Sie, dass Sie möglicherweise die Vertrauensrichtlinie aktualisieren müssen, damit sie in Ihre IAM Rolle aufgenommen EventBridge wird. Im Folgenden wird ein Beispiel gezeigt:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  13. Wählen Sie Weiter.

  14. (Optional) Geben Sie ein oder mehrere Tags für die Regel ein. Weitere Informationen finden Sie unter Tagging Your Amazon EventBridge Resources im EventBridge Amazon-Benutzerhandbuch.

  15. Wählen Sie Weiter.

  16. Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.

Erstellen Sie ein EventBridge Ereignis, das ein Runbook (Befehlszeile) verwendet

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oder Windows) verwenden oder AWS Tools for PowerShell eine EventBridge Ereignisregel erstellen und ein Runbook als Ziel konfigurieren.

So konfigurieren Sie ein Runbook als Ziel einer Ereignisregel EventBridge
  1. Installieren und konfigurieren Sie das AWS CLI oder das AWS Tools for PowerShell, falls Sie das noch nicht getan haben.

    Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version der AWS CLI und Installieren des AWS Tools for PowerShell.

  2. Erstellen Sie einen Befehl, um eine neue EventBridge Ereignisregel anzugeben. Ersetze jeden example resource placeholder mit Ihren eigenen Informationen.

    Auslöser nach Zeitplan

    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"

    Im folgenden Beispiel wird eine EventBridge Ereignisregel erstellt, die jeden Tag um 9:00 Uhr (UTC) beginnt.

    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 * * ? *)"

    Auslöser basierend auf einem Ereignis

    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"]}'

    Im folgenden Beispiel wird eine EventBridge Ereignisregel erstellt, die startet, wenn sich der Status einer EC2 Instanz in der Region ändert.

    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"]}'

    Der Befehl gibt Details für die neue EventBridge Regel zurück, die der folgenden ähneln.

    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. Erstellen Sie einen Befehl, um ein Runbook als Ziel der in Schritt 2 erstellten EventBridge Ereignisregel anzugeben. Ersetzen Sie jeden example resource placeholder mit Ihren eigenen Informationen.

    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

    Im folgenden Beispiel wird ein EventBridge Ereignisziel erstellt, das die angegebene Instanz-ID mithilfe des Runbooks AWS-StartEC2Instance startet.

    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

    Das System gibt unter anderem folgende Informationen zurück

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

    Es erfolgt keine Ausgabe, wenn der Befehl für erfolgreich ist. PowerShell