Planen von Automatisierungen mit State Manager-Zuordnungen - 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.

Planen von Automatisierungen mit State Manager-Zuordnungen

Sie können eine Automatisierung starten, indem Sie eine State Manager Zuordnung zu einem Runbook erstellen. State Managerist eine Fähigkeit von. AWS Systems Manager Indem Sie eine State Manager Zuordnung zu einem Runbook erstellen, können Sie verschiedene AWS Ressourcentypen als Ziel verwenden. Sie können beispielsweise Zuordnungen erstellen, die einen gewünschten Status für eine AWS Ressource erzwingen, einschließlich der folgenden:

  • Ordnen Sie Amazon Elastic Compute Cloud (AmazonEC2) -Instances eine Systems Manager Manager-Rolle zu, um sie zu verwalteten Instances zu machen.

  • Erzwingen Sie die gewünschten Eingangs- und Ausgangsregeln für eine Sicherheitsgruppe.

  • Erstellen oder löschen Sie Amazon DynamoDB-Backups.

  • Erstellen oder löschen Sie Amazon Elastic Block Store (AmazonEBS) -Snapshots.

  • Deaktivieren Sie Lese- und Schreibberechtigungen für Amazon Simple Storage Service (Amazon S3)-Buckets.

  • Starten, starten oder beenden Sie verwaltete Instances und Amazon Relational Database Service (AmazonRDS) -Instances.

  • Anwenden von Patches auf Linux, macOS und Windows AMIs.

Gehen Sie wie folgt vor, um eine State Manager Zuordnung zu erstellen, die mithilfe der AWS Systems Manager Konsole und AWS Command Line Interface (AWS CLI) eine Automatisierung ausführt. Allgemeine Informationen zu Verknüpfungen und Informationen zum Erstellen einer Zuordnung, die ein SSM Command Dokument oder Policy Dokument verwendet, finden Sie unterErstellen von Zuordnungen.

Bevor Sie beginnen

Beachten Sie die folgenden wichtigen Details, bevor Sie eine Automatisierung mithilfe von State Manager ausführen:

  • Bevor Sie eine Zuordnung erstellen können, die ein Runbook verwendet, stellen Sie sicher, dass Sie Berechtigungen für die Automatisierung konfiguriert haben, eine Funktion von AWS Systems Manager. Weitere Informationen finden Sie unter Einrichten der Automatisierung.

  • State Manager-Zuordnungen, die Runbooks verwenden, zählen zu der maximalen Anzahl der gleichzeitig ausgeführten Automatisierungen in Ihrem AWS-Konto hinzu. Sie können maximal 100 Automatisierungen gleichzeitig ausführen. Informationen finden Sie unter Systems Manager Service Quotas im Allgemeine Amazon Web Services-Referenz.

  • Wenn eine Automatisierung ausgeführt wird, werden die durch die Automatisierung initiierten API Vorgänge State Manager nicht protokolliert. AWS CloudTrail

  • Systems Manager erstellt automatisch eine serviceverknüpfte Rolle, sodass sie berechtigt State Manager ist, Systems Manager API Automation-Operationen aufzurufen. Wenn Sie möchten, können Sie die serviceverknüpfte Rolle selbst erstellen, indem Sie den folgenden Befehl über das Symbol oder ausführen. AWS CLI AWS Tools for PowerShell

    Linux & macOS
    aws iam create-service-linked-role \ --aws-service-name ssm.amazonaws.com
    Windows
    aws iam create-service-linked-role ^ --aws-service-name ssm.amazonaws.com
    PowerShell
    New-IAMServiceLinkedRole ` -AWSServiceName ssm.amazonaws.com

    Weitere Informationen zu serviceverknüpften Rollen finden Sie unter Verwenden von serviceverknüpften Rollen für Systems Manager.

Erstellen einer Zuordnung, die eine Automatisierung ausführt (Konsole)

Im folgenden Verfahren wird beschrieben, wie mithilfe der Systems Manager-Konsole eine State Manager-Zuordnung erstellt wird, die eine Automatisierung ausführt.

So erstellen Sie eine State Manager-Zuordnung zum Ausführen einer Automatisierung
  1. Öffnen Sie die AWS Systems Manager Konsole unter. https://console.aws.amazon.com/systems-manager/

  2. Wählen Sie im Navigationsbereich State Manager und anschließend Create association (Zuordnung erstellen) aus.

  3. Geben Sie im Feld Name einen Namen an. Dies ist zwar optional, wird aber empfohlen.

  4. Wählen Sie in der Liste Document ein Runbook aus. Verwenden Sie die Suchleiste, um nach allen Runbooks mit Document type : Equal : Automation zu filtern. Zur Anzeige von weiteren Runbooks verwenden Sie die Zahlen rechts neben der Suchleiste.

    Anmerkung

    Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

  5. Wählen Sie Simple execution (Einfache Ausführung) aus, um die Automatisierung auf einem oder mehreren Zielen auszuführen, indem Sie die Ressourcen-ID für diese Ziele angeben. Wählen Sie Ratensteuerung, um die Automatisierung für eine ganze Flotte von AWS Ressourcen auszuführen, indem Sie eine Targeting-Option wie Tags oder angeben AWS Resource Groups. Sie können auch die Operation der Automatisierung auf Ihren Ressourcen steuern, indem Sie Gleichzeitigkeits- und Fehlergrenzwerte angeben.

    Wenn Sie Rate control (Ratensteuerung) auswählen, wird der Abschnitt Targets (Ziele) angezeigt.

  6. Wählen Sie im Abschnitt Targets (Ziele) eine Methode zur Ausrichtung der Ressourcen aus.

    1. (Erforderlich) Wählen Sie in der Liste Parameter einen Parameter aus. Die Elemente in der Liste Parameter richten sich nach den Parametern in dem Runbook, das Sie zu Beginn dieses Verfahrens ausgewählt haben. Durch Auswahl eines Parameters legen Sie den Typ der Ressource fest, für die die Automatisierung ausgeführt wird.

    2. (Erforderlich) Wählen Sie in der Liste Targets (Ziele) ein Verfahren für die Ausrichtung auf Ressourcen aus.

      • Resource Group (Ressourcengruppe): Wählen Sie den Namen der Gruppe aus der Liste Resource Group (Ressourcengruppe) aus. Weitere Informationen zum Targeting AWS Resource Groups in Runbooks finden Sie unterTargeting AWS Resource Groups.

      • Tags: Geben Sie den Tag-Schlüssel und (optional) den Tag-Wert in die dafür vorgesehenen Felder ein. Wählen Sie Hinzufügen aus. Weitere Informationen zum Targeting von Tags in Runbooks finden Sie unter Anzielen eines Tags.

      • Parameter Values (Parameterwerte): Geben Sie die Werte im Abschnitt Input parameters (Eingabeparameter) ein. Wenn Sie mehrere Werte angeben, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Wert aus.

        Nehmen Sie beispielsweise an, dass das Runbook einen InstanceID-Parameter enthält. Wenn Sie die Werte des InstanceID-Parameters beim Ausführen der Automatisierung verwenden, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Instance-ID-Wert aus. Die übergeordnete Automatisierung ist abgeschlossen, wenn Automatisierung die Ausführung jeder angegebenen Instance abgeschlossen hat oder wenn die Automatisierung fehlschlägt. Sie können maximal 50 Parameterwerte für die Ausrichtung verwenden. Weitere Informationen zum Targeting von Parameterwerten in Runbooks finden Sie unter Ausrichtung auf Parameterwerte.

  7. Geben Sie im Abschnitt Input parameters (Eingabeparameter) die erforderlichen Eingabeparameter an.

    Wenn Sie die Zielressourcen mithilfe von Tags oder einer Ressourcengruppe ausgewählt haben, müssen Sie möglicherweise keine der Optionen im Abschnitt Input parameters (Eingabeparameter) auswählen. Wenn Sie beispielsweise das AWS-RestartEC2Instance Runbook ausgewählt haben und sich dafür entschieden haben, Instances mithilfe von Tags anzusprechen, müssen Sie IDs im Abschnitt Eingabeparameter keine Instanz angeben oder auswählen. Die Automatisierung sucht die Instances für den Neustart mit den von Ihnen angegebenen Tags.

    Wichtig

    Sie müssen eine Rolle ARN in dem AutomationAssumeRoleFeld angeben. State Managerverwendet die im Runbook AWS-Services angegebene Rolle, um Automatisierungszuordnungen in Ihrem Namen aufzurufen und auszuführen.

  8. Wählen Sie im Abschnitt Specify schedule (Zeitplan angeben) die Option On Schedule (Nach Zeitplan) aus, wenn Sie die Zuordnungen in regelmäßigen Abständen ausführen möchten. Wenn Sie diese Option auswählen, verwenden Sie die bereitgestellten Optionen zum Erstellen des Zeitplans mithilfe von Cron- oder Rate-Ausdrücken. Weitere Informationen zu Cron- und Rate-Ausdrücken für State Manager finden Sie unter Cron- und Rate-Ausdrücke für Zuordnungen.

    Anmerkung

    Rate-Ausdrücke werden bevorzugt zur Planung für State Manager-Zuordnungen verwendet, die Automatisierungen verwenden ausführen. Rate-Ausdrücke ermöglichen mehr Flexibilität für die Ausführung von Zuordnungen für den Fall, dass Sie die maximale Anzahl von gleichzeitig ausgeführten Automatisierungen erreichen. Mit einem Ratenzeitplan kann Systems Manager die Automatisierung kurz nach dem Empfangen der Benachrichtigungen, dass gleichzeitige Automatisierungen das Maximum erreicht haben und gedrosselt wurden, wiederholen.

    Wählen Sie No schedule (Kein Zeitplan)aus, wenn Sie die Zuordnung einmalig ausführen möchten.

  9. (Optional) Wählen Sie im Bereich Rate Control die Optionen Parallelität und Fehlerschwellenwert aus, um die Bereitstellung der Automatisierung auf Ihren AWS Ressourcen zu steuern.

    1. Wählen Sie im Abschnitt Concurrency (Gleichzeitigkeit) eine Option aus:

      • Wählen Sie targets (Ziele) aus, um eine absolute Anzahl von Zielen einzugeben, die die Automatisierung gleichzeitig ausführen können.

      • Wählen Sie percentage (Prozentsatz) aus, um einen Prozentsatz der Ziele anzugeben, die den Automatisierung gleichzeitig ausführen können.

    2. Wählen Sie im Abschnitt Error threshold (Fehlerschwellenwert) eine Option aus:

      • Wählen Sie errors (Fehler), um eine absolute Anzahl von zulässigen Fehlern anzugeben, bevor die Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.

      • Wählen Sie percentage (Prozentsatz) aus, um einen Prozentsatz von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.

    Weitere Informationen zur Verwendung von Zielen und Ratensteuerungen mit Automation finden Sie unter Führen Sie automatisierte Abläufe in großem Umfang aus.

  10. Wählen Sie Create Association.

    Wichtig

    Wenn Sie eine Zuordnung erstellen, wird die Zuordnung sofort für die ausgewählten Ziele ausgeführt. Die Zuordnung wird anschließend auf Grundlage des ausgewählten Cron- oder Rate-Ausdrucks ausgeführt. Wenn Sie No schedule (Kein Zeitplan) ausgewählt haben, wird die Zuordnung nicht mehr ausgeführt.

Erstellen einer Zuordnung, die eine Automatisierung ausführt (Befehlszeile)

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oder Windows) verwenden oder AWS Tools for PowerShell eine State Manager Zuordnung erstellen, die eine Automatisierung ausführt.

Bevor Sie beginnen

Bevor Sie das folgende Verfahren abschließen, stellen Sie sicher, dass Sie eine IAM Servicerolle erstellt haben, die die zum Ausführen des Runbooks erforderlichen Berechtigungen enthält, und eine Vertrauensstellung für die Automatisierung konfiguriert haben, eine Fähigkeit von AWS Systems Manager. Weitere Informationen finden Sie unter Aufgabe 1: Erstellen einer Servicerolle für Automation.

So erstellen Sie eine Zuordnung zum Ausführen einer Automatisierung
  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. Nutzen Sie den folgenden Befehl, um eine Liste der Dokumente anzuzeigen.

    Linux & macOS
    aws ssm list-documents
    Windows
    aws ssm list-documents
    PowerShell
    Get-SSMDocumentList

    Notieren Sie den Namen des Runbooks, das Sie für die Zuordnung verwenden möchten.

  3. Führen Sie den folgenden Befehl aus, um Details des Runbooks einsehen zu können: Ersetzen Sie im folgenden Befehl runbook name mit Ihren eigenen Informationen.

    Linux & macOS
    aws ssm describe-document \ --name runbook name

    Notieren Sie einen Parameternamen (z. B. InstanceId), den Sie für die Option --automation-target-parameter-name verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

    Windows
    aws ssm describe-document ^ --name runbook name

    Notieren Sie einen Parameternamen (z. B. InstanceId), den Sie für die Option --automation-target-parameter-name verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

    PowerShell
    Get-SSMDocumentDescription ` -Name runbook name

    Notieren Sie einen Parameternamen (z. B. InstanceId), den Sie für die Option AutomationTargetParameterName verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

  4. Erstellen Sie einen Befehl, der eine Automatisierung mithilfe einer State Manager-Zuordnung ausführt. Ersetze jedes example resource placeholder mit Ihren eigenen Informationen.

    Ausrichtung mithilfe von Tags

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=tag:key name,Values=value \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    Anmerkung

    Wenn Sie eine Assoziation mithilfe von erstellen AWS CLI, verwenden Sie den --targets Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter --instance-id. Der Parameter --instance-id ist veraltet.

    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=tag:key name,Values=value ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    Anmerkung

    Wenn Sie eine Assoziation mithilfe von erstellen AWS CLI, verwenden Sie den --targets Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter --instance-id. Der Parameter --instance-id ist veraltet.

    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "tag:key name" $Targets.Values = "value" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole" } ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"
    Anmerkung

    Wenn Sie eine Assoziation mithilfe von erstellen AWS Tools for PowerShell, verwenden Sie den Target Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter InstanceId. Der Parameter InstanceId ist veraltet.

    Ausrichtung mithilfe von Parameterwerten

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ParameterValues,Values=value,value 2,value 3 \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ParameterValues,Values=value,value 2,value 3 ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ParameterValues" $Targets.Values = "value","value 2","value 3" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"

    Targeting mit AWS Resource Groups

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ResourceGroup,Values=resource group name \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression"
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ResourceGroup,Values=resource group name ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression"
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "resource group name" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression"

    Targeting mehrerer Konten und Regionen

    Linux & macOS
    aws ssm create-association \ --association-name association name \ --targets Key=ResourceGroup,Values=resource group name \ --name runbook name \ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \ --automation-target-parameter-name target parameter \ --schedule "cron or rate expression" \ --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
    Windows
    aws ssm create-association ^ --association-name association name ^ --targets Key=ResourceGroup,Values=resource group name ^ --name runbook name ^ --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^ --automation-target-parameter-name target parameter ^ --schedule "cron or rate expression" ^ --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "resource group name" New-SSMAssociation ` -AssociationName "association name" ` -Target $Targets ` -Name "runbook name" ` -Parameters @{ "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} ` -AutomationTargetParameterName "target parameter" ` -ScheduleExpression "cron or rate expression" ` -TargetLocations @{ "Accounts"=["111122223333,444455556666,444455556666"], "Regions"=["region,region"]

    Der Befehl gibt Details für die neue Zuordnung zurück, die den folgenden ähneln.

    Linux & macOS
    {
    "AssociationDescription": {
        "ScheduleExpression": "cron(0 7 ? * MON *)",
        "Name": "AWS-StartEC2Instance",
        "Parameters": {
            "AutomationAssumeRole": [
                "arn:aws:iam::123456789012:role/RunbookAssumeRole"
            ]
        },
        "Overview": {
            "Status": "Pending",
            "DetailedStatus": "Creating"
        },
        "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
        "DocumentVersion": "$DEFAULT",
        "AutomationTargetParameterName": "InstanceId",
        "LastUpdateAssociationDate": 1564686638.498,
        "Date": 1564686638.498,
        "AssociationVersion": "1",
        "AssociationName": "CLI",
        "Targets": [
            {
                "Values": [
                    "DEV"
                ],
                "Key": "tag:ENV"
            }
        ]
    }
    }
    
    Windows
    {
    "AssociationDescription": {
        "ScheduleExpression": "cron(0 7 ? * MON *)",
        "Name": "AWS-StartEC2Instance",
        "Parameters": {
            "AutomationAssumeRole": [
                "arn:aws:iam::123456789012:role/RunbookAssumeRole"
            ]
        },
        "Overview": {
            "Status": "Pending",
            "DetailedStatus": "Creating"
        },
        "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
        "DocumentVersion": "$DEFAULT",
        "AutomationTargetParameterName": "InstanceId",
        "LastUpdateAssociationDate": 1564686638.498,
        "Date": 1564686638.498,
        "AssociationVersion": "1",
        "AssociationName": "CLI",
        "Targets": [
            {
                "Values": [
                    "DEV"
                ],
                "Key": "tag:ENV"
            }
        ]
    }
    }
    
    PowerShell
    Name                  : AWS-StartEC2Instance
    InstanceId            : 
    Date                  : 8/1/2019 7:31:38 PM
    Status.Name           : 
    Status.Date           : 
    Status.Message        : 
    Status.AdditionalInfo : 
Anmerkung

Wenn Sie auf einer oder mehreren Instances eine Zuordnung anhand von Tags erstellen und von einer dieser Instances die Tags entfernen, wird die Zuordnung auf dieser Instance nicht mehr ausgeführt. Die Zuordnung zwischen der Instance und dem State Manager-Dokument ist aufgehoben.

Fehlerbehebung bei Automatisierungen, die von State Manager-Zuordnungen ausgeführt werden

Systems Manager setzt ein Limit von 100 gleichzeitigen Automatisierungen und 1.000 Automatisierungen in der Warteschlange pro Konto und Region. Wenn eine State Manager Assoziation, die ein Runbook verwendet, den Status Fehlgeschlagen und den detaillierten Status anzeigt AutomationExecutionLimitExceeded, hat Ihre Automatisierung möglicherweise das Limit erreicht. Daher drosselt Systems Manager die Automatisierungen. Führen Sie folgende Schritte aus, um dieses Problem zu lösen:

  • Verwenden Sie einen anderen Rate- oder Cron-Ausdruck für Ihre Zuordnung. Beispiel: Wenn die Zuordnung alle 30 Minuten ausgeführt werden soll, ändern Sie den Ausdruck so, dass er jede Stunde oder alle zwei Stunden ausgeführt wird.

  • Löschen Sie vorhandene Automatisierungen mit dem Status Pending (Ausstehend). Durch Löschen dieser Automatisierungen bereinigen Sie die aktuelle Warteschlange.