Ausführen von Befehlen in großem Maßstab - 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 Befehlen in großem Maßstab

Sie könnenRun Command, eine Fähigkeit von AWS Systems Manager, verwenden, um Befehle auf einer Flotte verwalteter Knoten auszuführen, indem Sie den verwendentargets. Der targets-Parameter nimmt eine Key,Value-Kombination basierend auf Tags an, die Sie für Ihre verwalteten Knoten angegeben haben. Wenn Sie den Befehl ausführen, versucht das System, den Befehl auf allen verwalteten Knoten auszuführen, die den angegebenen Tags entsprechen. Weitere Informationen zum Taggen verwalteter Instances finden Sie unter Tagging Your AWS Resources im Tagging AWS Resources User Guide. Informationen zum Taggen Ihrer verwalteten IoT-Geräte finden Sie unter Taggen Ihrer AWS IoT Greengrass Version 2 Ressourcen im AWS IoT Greengrass Version 2 Entwicklerhandbuch.

Sie können den targets Parameter auch verwenden, um eine Liste bestimmter verwalteter Knoten als Ziel IDs festzulegen, wie im nächsten Abschnitt beschrieben.

Zur Steuerung der Befehlsausführung auf Hunderten und Tausenden von verwalteten Knoten umfasst Run Command auch Parameter für die Einschränkung, wie viele Knoten gleichzeitig eine Anforderung verarbeitet können, und wie viele Fehler durch einen Befehl ausgelöst werden können, bevor der Befehl beendet wird.

Mehrere verwaltete Knoten anvisieren

Sie können einen Befehl ausführen und auf verwaltete Knoten abzielen, indem Sie Tags, AWS Ressourcengruppennamen oder verwaltete Knoten angebenIDs.

Die folgenden Beispiele zeigen das Befehlsformat bei der Verwendung Run Command von from the AWS Command Line Interface (AWS CLI ). Ersetze jedes example resource placeholder mit Ihren eigenen Informationen. Die Beispielbefehle werden in diesem Abschnitt sind mit [...] abgeschnitten.

Beispiel 1: Angabe von Tags als Ziel

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:tag-name,Values=tag-value \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:tag-name,Values=tag-value ^ [...]

Beispiel 2: Eine AWS Ressourcengruppe anhand des Namens ansprechen

Sie können maximal einen Ressourcengruppenamen pro Befehlsaufruf angeben. Wenn Sie eine Ressourcengruppe erstellen, empfehlen wir, AWS::SSM:ManagedInstance und AWS::EC2::Instance als Ressourcentypen in dem Gruppierungskriterium aufzunehmen.

Anmerkung

Um Befehle senden zu können, die auf eine Ressourcengruppe abzielen, müssen Ihnen AWS Identity and Access Management (IAM) Berechtigungen zum Auflisten oder Anzeigen der Ressourcen, die zu dieser Gruppe gehören, erteilt worden sein. Weitere Informationen finden Sie unter Einrichten von Berechtigungen im AWS Resource Groups -Benutzerhandbuch.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=resource-groups:Name,Values=resource-group-name \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=resource-groups:Name,Values=resource-group-name ^ [...]

Beispiel 3: Ausrichtung auf eine AWS Ressourcengruppe nach Ressourcentyp

Sie können maximal fünf Ressourcengruppentypen pro Befehlsaufruf angeben. Wenn Sie eine Ressourcengruppe erstellen, empfehlen wir, AWS::SSM:ManagedInstance und AWS::EC2::Instance als Ressourcentypen in dem Gruppierungskriterium aufzunehmen.

Anmerkung

Um Befehle senden zu können, die auf eine Ressourcengruppe abzielen, müssen Sie IAM berechtigt sein, die Ressourcen, die zu dieser Gruppe gehören, aufzulisten oder anzuzeigen. Weitere Informationen finden Sie unter Einrichten von Berechtigungen im AWS Resource Groups -Benutzerhandbuch.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=resource-groups:ResourceTypeFilters,Values=resource-type-1,resource-type-2 \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=resource-groups:ResourceTypeFilters,Values=resource-type-1,resource-type-2 ^ [...]

Beispiel 4: Zielinstanz IDs

Die folgenden Beispiele veranschaulichen, wie verwaltete Knoten mithilfe des instanceids-Schlüssels mit dem targets-Parameter anvisiert werden können. Sie können diesen Schlüssel verwenden, um verwaltete AWS IoT Greengrass Kerngeräte ins Visier zu nehmen, da jedem Gerät ein Mi-ID_number. Sie können das Gerät IDs in anzeigenFleet Manager, eine Fähigkeit von AWS Systems Manager.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=instanceids,Values=instance-ID-1,instance-ID-2,instance-ID-3 \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=instanceids,Values=instance-ID-1,instance-ID-2,instance-ID-3 ^ [...]

Wenn Sie verwaltete Knoten für unterschiedliche Umgebungen mit einem Key namens Environment und Values von Development, Test, Pre-production undProduction markiert haben, könnten Sie einen Befehl an alle verwalteten Knoten in einer dieser Umgebungen mit dem targets-Parameter mit der folgenden Syntax senden.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Environment,Values=Development \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Environment,Values=Development ^ [...]

Sie könnten weitere verwaltete Knoten in anderen Umgebungen auswählen, indem Sie sie zur Values-Liste hinzufügen. Trennen Sie die Elemente durch Kommas.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Environment,Values=Development,Test,Pre-production \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Environment,Values=Development,Test,Pre-production ^ [...]

Variation: Anpassung Ihrer Ziele mit mehreren Key-Kriterien

Sie können die Anzahl der Ziele für Ihren Befehl verfeinern, indem Sie mehrere Key Kriterien berücksichtigen. Wenn Sie mehr als ein Key-Kriterium einschließen, wird das System verwaltete Knoten anvisieren, die alle Kriterien erfüllen. Mit dem folgenden Befehl werden alle verwaltete Knoten anvisiert, die für die Finanzabteilung und für die Datenbankserver-Rolle markiert sind.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Department,Values=Finance Key=tag:ServerRole,Values=Database \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Department,Values=Finance Key=tag:ServerRole,Values=Database ^ [...]

Variation: Verwenden mehrerer Key- und Value-Kriterien

Aufbauend auf dem vorherigen Beispiel können Sie mehrere Abteilungen und mehrere Server-Rollen auswählen, indem zusätzliche Elemente in die Values Kriterien einfügen.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Department,Values=Finance,Marketing Key=tag:ServerRole,Values=WebServer,Database \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Department,Values=Finance,Marketing Key=tag:ServerRole,Values=WebServer,Database ^ [...]

Variation: Anvisieren markierter verwalteter Knoten mithilfe von mehreren Values-Kriterien

Wenn Sie verwaltete Knoten für unterschiedliche Umgebungen mit einem Key namens Department und Values von Sales und Finance markiert haben, könnten Sie einen Befehl an alle Knoten in diesen Umgebungen mit dem targets-Parameter mit der folgenden Syntax senden.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Department,Values=Sales,Finance \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Department,Values=Sales,Finance ^ [...]

Sie können maximal fünf Schlüssel und fünf Werte für jeden Schlüssel angeben.

Wenn entweder ein Tag-Schlüssel (der Variablenname) oder eine Tag-Wert Leerzeichen enthält, setzen Sie den Tagschlüssel oder den Wert in Anführungszeichen, wie in den folgenden Beispielen gezeigt.

Beispiel: Leerzeichen in Value-Tag

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:OS,Values="Windows Server 2016" \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:OS,Values="Windows Server 2016" ^ [...]

Beispiel: Leerzeichen in tag-Schlüssel und Value

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key="tag:Operating System",Values="Windows Server 2016" \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key="tag:Operating System",Values="Windows Server 2016" ^ [...]

Beispiel: Leerzeichen in einem Element in einer Liste von Values

Linux & macOS
aws ssm send-command \ --document-name document-name \ --targets Key=tag:Department,Values="Sales","Finance","Systems Mgmt" \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --targets Key=tag:Department,Values="Sales","Finance","Systems Mgmt" ^ [...]

Verwenden von Ratensteuerungen

Sie können das Tempo steuern, mit dem Befehle an verwaltete Knoten in einer Gruppe gesendet werden, indem Sie Nebenläufigkeits-Kontrollen und Fehlerkontrollen verwenden.

Verwenden von Gleichzeitigkeitssteuerungen

Sie können die Anzahl der verwalteten Knoten steuern, die einen Befehl gleichzeitig ausführen, indem Sie den max-concurrency-Parameter verwenden (die Concurrency (Nebenläufigkeit)-Optionen auf der Seite Run a command (Befehl ausführen). Sie können entweder eine absolute Anzahl an verwalteten Knoten, z. B. 10, oder einen Prozentsatz des festgelegten Ziels, beispielsweise 10%, angeben. Das Warteschlangensystem liefert den Befehl an einen einzelnen Knoten und wartet, bis das System den ersten Aufruf bestätigt hat, bevor der Befehl an zwei weitere Knoten gesendet wird. Das System sendet exponentiell Befehle an mehrere Knoten, bis das System den Wert max-concurrency erreicht hat. Der Standardwert max-concurrency beträgt 50. Die folgenden Beispiele zeigen, wie Sie Werte für den Parameter max-concurrency angeben.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --max-concurrency 10 \ --targets Key=tag:Environment,Values=Development \ [...]
aws ssm send-command \ --document-name document-name \ --max-concurrency 10% \ --targets Key=tag:Department,Values=Finance,Marketing Key=tag:ServerRole,Values=WebServer,Database \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --max-concurrency 10 ^ --targets Key=tag:Environment,Values=Development ^ [...]
aws ssm send-command ^ --document-name document-name ^ --max-concurrency 10% ^ --targets Key=tag:Department,Values=Finance,Marketing Key=tag:ServerRole,Values=WebServer,Database ^ [...]

Verwenden von Fehlersteuerungen

Sie können auch die Ausführung eines Befehls auf Hunderten oder Tausenden von verwalteten Knoten steuern, indem Sie eine Fehlerbegrenzung mit den max-errors-Parametern einstellen (das Feld Error threshold (Fehlerschwelle) auf der Seite Run a command (Befehl ausführen)). Der Parameter gibt an, wie viele Fehler zulässig sind, bevor das System keinen Befehl mehr an zusätzliche verwaltete Knoten sendet. Sie können entweder eine absolute Anzahl an Fehlern, z. B. 10, oder einen Prozentsatz des festgelegten Ziels, beispielsweise 10%, festlegen. Wenn Sie z. B. 3 angeben, sendet das System keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Wenn Sie 0 angeben, sendet das System keinen weiteren Befehl an zusätzliche verwaltete Knoten, nachdem das erste Fehlerergebnis zurückgegeben wird. Wenn Sie einen Befehl an 50 verwaltete Knoten senden und max-errors auf 10% einstellen, sendet das System keinen Befehl mehr an weitere Knoten, wenn der sechste Fehler empfangen wird.

Aufrufe, die bereits einen Befehl ausführen, wenn max-errors erreicht ist, dürfen abgeschlossen werden, jedoch können einige dieser Aufrufe ebenso fehlschlagen. Wenn Sie sicherstellen müssen, dass es nicht mehr als max-errors fehlgeschlagene Aufrufe geben wird, setzen Sie max-concurrency auf 1, sodass die Aufrufe jeweils um eins fortfahren. Die Standardwert für max-errors ist 0. Die folgenden Beispiele zeigen, wie Sie Werte für den Parameter max-errors angeben.

Linux & macOS
aws ssm send-command \ --document-name document-name \ --max-errors 10 \ --targets Key=tag:Database,Values=Development \ [...]
aws ssm send-command \ --document-name document-name \ --max-errors 10% \ --targets Key=tag:Environment,Values=Development \ [...]
aws ssm send-command \ --document-name document-name \ --max-concurrency 1 \ --max-errors 1 \ --targets Key=tag:Environment,Values=Production \ [...]
Windows
aws ssm send-command ^ --document-name document-name ^ --max-errors 10 ^ --targets Key=tag:Database,Values=Development ^ [...]
aws ssm send-command ^ --document-name document-name ^ --max-errors 10% ^ --targets Key=tag:Environment,Values=Development ^ [...]
aws ssm send-command ^ --document-name document-name ^ --max-concurrency 1 ^ --max-errors 1 ^ --targets Key=tag:Environment,Values=Production ^ [...]