Ausführen von Automatisierungen basierend auf Ereignissen - 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.

Ausführen von Automatisierungen basierend auf Ereignissen

Sie können eine Automatisierung starten, indem Sie ein Runbook als Ziel eines Amazon EventBridge-Ereignisses angeben. Sie können Automatisierungen nach einem Zeitplan oder beim Eintreten eines bestimmten AWS -Ereignisses starten. Angenommen, Sie erstellen ein Runbook mit dem Namen BootStrapInstances, das Software auf einer Instance installiert, wenn eine Instance gestartet wird. Um das BootStrapInstances Runbook (und die entsprechende Automatisierung) als Ziel eines EventBridge Ereignisses anzugeben, erstellen Sie zunächst eine neue EventBridge Regel. (Beispiel für eine Regel: Service name (Servicename): EC2, Event Type (Ereignistyp): EC2 Instance State-change Notification, Specific state(s) (Bestimmte Status): running, Any instance (Beliebige Instance).) Anschließend verwenden Sie die folgenden Verfahren, um das BootStrapInstances Runbook mithilfe der EventBridge Konsole und AWS Command Line Interface () als Ziel des Ereignisses anzugebenAWS CLI. 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 verwendet (Konsole)

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

So konfigurieren Sie ein Runbook als Ziel einer EventBridge Ereignisregel
  1. Öffnen Sie die Amazon- EventBridge 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 Ihrem eigenen stammen AWS-Konto, wählen Sie Standard aus. 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 aus.

    3. Wählen Sie für Ereignisquelle die Option AWS Ereignisse oder EventBridge Partnerereignisse 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 auswählen, stimmen alle vom ausgegebenen Ereignisse mit der Regel AWS-Service überein.

        Um die Vorlage anzupassen, wählen Sie Custom pattern (JSON editor) (Benutzerdefiniertes Muster (JSON-Editor)) und nehmen Sie die erforderlichen Änderungen vor.

      • Wenn Sie ein benutzerdefiniertes Ereignismuster verwenden möchten, wählen Sie Custom pattern (JSON editor) (Benutzerdefiniertes Muster (JSON-Editor)) und erstellen Sie Ihr Ereignismuster.

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

    2. Wählen Sie Weiter aus.

    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. PST on the first Monday of every month (Detaillierter Zeitplan, der zu einem bestimmten Zeitpunkt (z. B. 8:00 Uhr) PST am ersten Montag jedes Monats PST ausgeführt wird) 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 aus.

  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. Bei vielen Zieltypen EventBridge benötigt Berechtigungen zum Senden von Ereignissen an das Ziel. In diesen Fällen EventBridge kann die IAM-Rolle erstellen, die für die Ausführung Ihrer Regel erforderlich ist. Führen Sie eine der folgenden Aktionen aus:

    • Um automatisch eine IAM-Rolle zu erstellen, wählen Sie Create a new role for this specific resource (Eine neue Rolle für diese spezifische Ressource erstellen).

    • Wenn Sie eine zuvor erstellte IAM-Rolle verwenden möchten, wählen Sie Use existing role (Vorhandene Rolle verwenden) und wählen Sie die vorhandene Rolle aus der Dropdown-Liste aus. Beachten Sie, dass Sie möglicherweise die Vertrauensrichtlinie für Ihre IAM-Rolle aktualisieren müssen, um einzuschließen EventBridge. 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 aus.

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

  15. Wählen Sie Weiter aus.

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

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

Im folgenden Verfahren wird beschrieben, wie Sie die AWS CLI (unter Linux oder Windows) oder verwenden AWS Tools for PowerShell , um eine EventBridge Ereignisregel zu erstellen und ein Runbook als Ziel zu konfigurieren.

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

    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. Ersetzen Sie jeden Beispiel Platzhalter für Ressourcen 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 beginnt, wenn eine EC2-Instance in der Region den Status ä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 ähnlich der folgenden zurück.

    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 EventBridge Ereignisregel anzugeben, die Sie in Schritt 2 erstellt haben. Ersetzen Sie jeden Beispiel Platzhalter für Ressourcen 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 Instance-ID mit dem Runbook startetAWS-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

    Das System gibt unter anderem folgende Informationen zurück

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

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