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.
Planer-CLI
Mit dem Instance Scheduler auf der AWS-Befehlszeilenschnittstelle (CLI) können Sie Zeitpläne und Zeiträume konfigurieren und die Kosteneinsparungen für einen bestimmten Zeitplan abschätzen.
Voraussetzungen
Die CLI in dieser Lösung erfordert Python 3.8+ und die neueste Version von boto3.
Erweitern Sie im angezeigten Detailbereich die Option
Um die Scheduler-CLI verwenden zu können, benötigen Sie Anmeldeinformationen für die AWS-CLI. Weitere Informationen finden Sie unter Konfiguration und Einstellungen für Anmeldeinformationsdateien im AWS-CLI-Benutzerhandbuch.
Ihre Anmeldeinformationen müssen über die folgenden Berechtigungen verfügen:
-
lambda:InvokeFunction- Um die InstanceSchedulerMain Funktion im Scheduler-Stack aufzurufen und die Zeitplan- und Periodeninformationen in der Scheduler-Konfigurationsdatenbank von der Befehlszeile aus zu aktualisieren -
cloudformation:DescribeStackResource- Um die physische Ressourcen-ID der AWS-Lambda-Funktion aus dem Stack abzurufen, um die CLI-Anforderung zu bearbeiten
Von der Scheduler-CLI gestellte Anfragen und Antworten werden im AdminCliRequestHandler-yyyymmdd Protokollstream protokolliert.
Anmerkung
Wenn Sie ein Profil mit dem Argument profile-name angeben, muss das von Ihnen angegebene Profil über diese Berechtigungen verfügen. Weitere Informationen zum Argument Profilname finden Sie unter Allgemeine Argumente.
Installieren Sie die Scheduler-CLI
-
Laden Sie
das Scheduler-CLI-Paket (instance_scheduler_cli.zip) herunter und platzieren Sie es in einem Verzeichnis auf Ihrem Computer. Wichtig
Die Installation schlägt fehl, wenn Sie die Dateien nicht in einem eigenen Verzeichnis platzieren und sie dann von diesem Verzeichnis aus installieren.
-
Entpacken Sie das ZIP-Archiv in ein eigenes Verzeichnis (instance_scheduler_cli).
-
Installieren Sie Scheduler-CLI aus demselben Verzeichnis, in dem Sie das entpackte CLI-Paket abgelegt haben, in Ihrer Umgebung:
Anmerkung
Scheduler-CLI benötigt Python 3.8 oder höher und die neuesten Versionen von pip und boto3. Wenn Sie nicht alle diese auf Ihrem lokalen Computer installiert haben, finden Sie in der offiziellen Dokumentation von pip
Installationsanweisungen, bevor Sie versuchen, die Scheduler-CLI zu installieren. pip install --no-index --find-links=instance_scheduler_cli instance_scheduler_cli
-
Überprüfen Sie, ob die Installation erfolgreich war mit:
scheduler-cli --help
Anmerkung
Falls gewünscht, ein Sdist der CLI
Befehlsstruktur
Die Scheduler-CLI verwendet eine mehrteilige Struktur in der Befehlszeile. Der nächste Teil spezifiziert das Scheduler-CLI-Python-Skript. Die Scheduler-CLI verfügt über Befehle, die die Operationen spezifizieren, die in Zeiträumen und Zeitplänen ausgeführt werden sollen. Die spezifischen Argumente für eine Operation können in der Befehlszeile in beliebiger Reihenfolge angegeben werden.
scheduler-cli <command> <arguments>
Allgemeine Argumente
Die Scheduler-CLI unterstützt die folgenden Argumente, die alle Befehle verwenden können:
| Argument | Beschreibung |
|---|---|
|
|
Der Name des Scheduler-Stacks. Wichtig: Dieses Argument ist für alle Befehle erforderlich. |
|
|
Der Name der Region, in der der Scheduler-Stack bereitgestellt wird. Hinweis: Sie müssen dieses Argument verwenden, wenn die Standardkonfigurations- und Anmeldeinformationsdateien nicht in derselben Region wie der Lösungsstapel installiert sind. |
|
|
Der Name des Profils, das zur Ausführung von Befehlen verwendet werden soll. Wenn kein Profilname angegeben ist, wird das Standardprofil verwendet. |
|
|
Ein JMESPath Ausdruck, der die Befehlsausgabe steuert. Weitere Informationen zur Steuerung der Ausgabe finden Sie unter Steuern der Befehlsausgabe über die AWS-Befehlszeilenschnittstelle im AWS-CLI-Benutzerhandbuch. |
|
|
Zeigt gültige Befehle und Argumente für die Scheduler-CLI an. Bei Verwendung mit einem bestimmten Befehl werden gültige Unterbefehle und Argumente für diesen Befehl angezeigt. |
|
|
Zeigt die Versionsnummer der Scheduler-CLI an. |
Verfügbare Befehle
Zeitraum erstellen
Beschreibung
Erzeugt eine Periode. Eine Periode muss mindestens eines der folgenden Elemente enthalten:begintime, endtimeweekdays,months, odermonthdays.
Argumente
-
--name -
-
Der Name der Periode
Typ: Zeichenfolge
Erforderlich: Ja
-
-
--description -
-
Eine Beschreibung des Zeitraums
Typ: Zeichenfolge
Erforderlich: Nein
-
-
--begintime -
-
Der Zeitpunkt, zu dem die Laufzeit beginnt. Wenn
begintimeund nicht angegebenendtimesind, ist die Laufzeit von 00:00 bis 23:59.Typ: Zeichenfolge
Einschränkungen: oder Format
H:MMHH:MMErforderlich: Nein
-
-
--endtime -
-
Der Zeitpunkt, zu dem die Laufzeit endet. Wenn
begintimeund nicht angegebenendtimesind, ist die Laufzeit von 00:00 bis 23:59.Typ: Zeichenfolge
Einschränkungen: oder Format
H:MMHH:MMErforderlich: Nein
-
-
--weekdays -
-
Die Wochentage für den Zeitraum
Typ: Zeichenfolge
Einschränkungen: Durch Kommas getrennte Liste abgekürzter Tagesnamen (Mon) oder Zahlen (0). Verwenden Sie -, um einen Bereich anzugeben. Verwenden Sie/, um jeden n-ten ^ Tag der Woche anzugeben.
Erforderlich: Nein
-
-
--months -
-
Die Monate des Zeitraums
Typ: Zeichenfolge
Einschränkungen: Durch Kommas getrennte Liste abgekürzter Monatsnamen (Jan) oder Zahlen (1). Verwenden Sie -, um einen Bereich anzugeben. Verwenden Sie/, um jeden n-ten ^ Monat anzugeben.
Erforderlich: Nein
-
-
--monthdays -
-
Die Tage des Monats für den Zeitraum
Typ: Zeichenfolge
Einschränkungen: Durch Kommas getrennte Liste abgekürzter Monatsnamen (Jan) oder Zahlen (1). Verwenden Sie -, um einen Bereich anzugeben. Verwenden Sie/, um jeden n-ten ^ Tag des Monats anzugeben.
Erforderlich: Nein
-
Beispiel
$ scheduler-cli create-period --name "weekdays" --begintime 09:00 --endtime 18:00 --weekdays mon-fri --stack Scheduler { "Period": { "Name": "weekdays", "Endtime": "18:00", "Type": "period", "Begintime": "09:00", "Weekdays": [ "mon-fri" ] } }
Zeitplan erstellen
Beschreibung
Erstellt einen Zeitplan.
Argumente
-
--name -
-
Der Name des Zeitplans
Typ: Zeichenfolge
Erforderlich: Ja
-
-
--description -
-
Eine Beschreibung des Zeitplans
Typ: Zeichenfolge
Erforderlich: Nein
-
-
--enforced -
-
Erzwingt den geplanten Status für die Instanz
Erforderlich: Nein
-
-
--use-metrics -
-
CloudWatch Amazon-Metriken sammeln
Erforderlich: Nein
-
-
--periods -
-
Eine Liste der Laufzeiten für den Zeitplan. Wenn mehrere Perioden angegeben sind, startet die Lösung eine Instanz, wenn einer der Perioden als ausgewertet wird.
trueTyp: Zeichenfolge
Einschränkungen: Durch Kommas getrennte Liste von Perioden. Wird verwendet
<period-name>@[replaceable]<instance type>, um einen Instance-Typ für einen Zeitraum anzugeben. Beispiel,weekdays@t2.large.Erforderlich: Ja
-
-
--retain-running -
-
Verhindert, dass eine Instanz am Ende einer Laufzeit von der Lösung gestoppt wird, wenn die Instanz vor Beginn des Zeitraums manuell gestartet wurde.
Erforderlich: Nein
-
-
--ssm-maintenance-window -
-
Fügt einem EC2 Amazon-Instance-Zeitplan ein AWS Systems Manager Manager-Wartungsfenster als Laufzeit hinzu.
Typ: Zeichenfolge
Erforderlich: Nein
-
-
--do-not-stop-new-instances -
-
Stoppen Sie eine Instance nicht, wenn sie zum ersten Mal markiert wird, wenn sie außerhalb einer Laufzeit läuft
Erforderlich: Nein
-
-
--timezone -
-
Die Zeitzone, die der Zeitplan verwenden wird
Typ: Zeichenfolgen-Array
Erforderlich: Nein (Wenn dieses Argument nicht verwendet wird, wird die Standardzeitzone aus dem Hauptlösungsstapel verwendet.)
-
-
--use-maintenance-window -
-
Fügt einem Amazon RDS-Instance-Zeitplan ein Amazon RDS-Wartungsfenster als Laufzeit oder ein AWS Systems Manager Manager-Wartungsfenster als Laufzeit zu einem EC2 Amazon-Instance-Zeitplan hinzu
Typ: wahr/falsch
Erforderlich: Nein (Standardeinstellung ist wahr)
-
Beispiel
$ scheduler-cli create-schedule --name LondonOfficeHours --periods weekdays,weekends --timezone Europe/London --stack Scheduler { "Schedule": { "Enforced": false, "Name": "LondonOfficeHours", "StopNewInstances": true, "Periods": [ "weekends", "weekdays" ], "Timezone": "Europe/London", "Type": "schedule" } }
Zeitraum löschen
-
--name -
-
Der Name des entsprechenden Zeitraums
Typ: Zeichenfolge
Erforderlich: Ja
-
Wichtig
Wenn der Zeitraum in vorhandenen Zeitplänen verwendet wird, müssen Sie ihn aus diesen Zeitplänen entfernen, bevor Sie ihn löschen.
Beispiel
$ scheduler-cli delete-period --name weekdays --stack Scheduler
{
"Period": "weekdays"
}
Zeitplan löschen
Beschreibung
Löscht einen vorhandenen Zeitplan
Argumente
-
--name -
-
Der Name des entsprechenden Zeitplans
Typ: Zeichenfolge
Erforderlich: Ja
-
Beispiel
$ scheduler-cli delete-schedule --name LondonOfficeHours --stack Scheduler
{
"Schedule": "LondonOfficeHours"
}
Zeiträume beschreiben
Beschreibung
Listet die konfigurierten Zeiträume für den Instance Scheduler-Stack auf
Argumente
-
--name -
-
Der Name eines bestimmten Zeitraums, den Sie beschreiben möchten
Typ: Zeichenfolge
Erforderlich: Nein
-
Beispiel
$ scheduler-cli describe-periods --stack Scheduler { "Periods": [ { "Name": "first-monday-in-quarter", "Months": [ "jan/3" ], "Type": "period", "Weekdays": [ "mon#1" ], "Description": "Every first Monday of each quarter" }, { "Description": "Office hours", "Weekdays": [ "mon-fri" ], "Begintime": "09:00", "Endtime": "17:00", "Type": "period", "Name": "office-hours" }, { "Name": "weekdays", "Endtime": "18:00", "Type": "period", "Weekdays": [ "mon-fri" ], "Begintime": "09:00" }, { "Name": "weekends", "Type": "period", "Weekdays": [ "sat-sun" ], "Description": "Days in weekend" } ] }
Zeitpläne beschreiben
Beschreibung
Listet die konfigurierten Zeitpläne für den Instance Scheduler-Stack auf.
Argumente
-
--name -
-
Der Name eines bestimmten Zeitplans, den Sie beschreiben möchten
Typ: Zeichenfolge
Erforderlich: Nein
-
Beispiel
$ scheduler-cli describe-schedules --stack Scheduler { "Schedules": [ { "OverrideStatus": "running", "Type": "schedule", "Name": "Running", "UseMetrics": false }, { "Timezone": "UTC", "Type": "schedule", "Periods": [ "working-days@t2.micro", "weekends@t2.nano" ], "Name": "scale-up-down" }, { "Timezone": "US/Pacific", "Type": "schedule", "Periods": [ "office-hours" ], "Name": "seattle-office-hours" }, { "OverrideStatus": "stopped", "Type": "schedule", "Name": "stopped", "UseMetrics": true } ] }
describe-schedule-usage
Beschreibung
Listet alle Perioden auf, die innerhalb eines Zeitplans laufen, und berechnet die Abrechnungsstunden für Instanzen. Verwenden Sie diesen Befehl, um einen Zeitplan zur Berechnung potenzieller Einsparungen und Laufzeiten nach der Erstellung oder Aktualisierung eines Zeitplans zu simulieren.
Argumente
-
--name -
-
Der Name des entsprechenden Zeitplans
Typ: Zeichenfolge
Erforderlich: Ja
-
-
--startdate -
-
Das Startdatum des für die Berechnung verwendeten Zeitraums. Das Standarddatum ist das aktuelle Datum.
Typ: Zeichenfolge
Erforderlich: Nein
-
-
--enddate -
-
Das Enddatum des für die Berechnung verwendeten Zeitraums. Das Standarddatum ist das aktuelle Datum.
Typ: Zeichenfolge
Erforderlich: Nein
-
Beispiel
$ scheduler-cli describe-schedule-usage --stack InstanceScheduler --name seattle-office-hours { "Usage": { "2017-12-04": { "BillingHours": 8, "RunningPeriods": { "Office-hours": { "Begin": "12/04/17 09:00:00", "End": "12/04/17 17:00:00", "BillingHours": 8, "BillingSeconds": 28800 } }, "BillingSeconds": 28800 } }, "Schedule": "seattle-office-hours"
Aktualisierungszeitraum
Beschreibung
Aktualisiert einen bestehenden Zeitraum
Argumente
Der update-period Befehl unterstützt dieselben Argumente wie der create-period Befehl. Weitere Informationen zu den Argumenten finden Sie im Befehl create period.
Wichtig
Wenn Sie kein Argument angeben, wird dieses Argument aus dem Punkt entfernt.
Zeitplan für die Aktualisierung
Beschreibung
Aktualisiert einen vorhandenen Zeitplan
Argumente
Der update-schedule Befehl unterstützt dieselben Argumente wie der create-schedule Befehl. Weitere Informationen zu den Argumenten finden Sie im Befehl create schedule.
Wichtig
Wenn Sie kein Argument angeben, wird dieses Argument aus dem Zeitplan entfernt.
help
Beschreibung
Zeigt eine Liste gültiger Befehle und Argumente für die Scheduler-CLI an.
Beispiel
$ scheduler-cli --help
usage: scheduler-cli [-h] [--version]
{create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule}
...
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
subcommands:
Valid subcommands
{create-period,create-schedule,delete-period,delete-schedule,describe-periods,describe-schedule-usage,describe-schedules,update-period,update-schedule}
Commands help
create-period Creates a period
create-schedule Creates a schedule
delete-period Deletes a period
delete-schedule Deletes a schedule
describe-periods Describes configured periods
describe-schedule-usage
Calculates periods and billing hours in which
instances are running
describe-schedules Described configured schedules
update-period Updates a period
update-schedule Updates a schedule
Bei Verwendung mit einem bestimmten Befehl zeigt das --help Argument gültige Unterbefehle und Argumente für diesen Befehl an.
Beispiel für einen bestimmten Befehl
$ scheduler-cli describe-schedules --help
usage: scheduler-cli describe-schedules [-h] [--name NAME] [--query QUERY]
[--region REGION] --stack STACK
optional arguments:
-h, --help show this help message and exit
--name NAME Name of the schedule
--query QUERY JMESPath query to transform or filter the result
--region REGION Region in which the Instance Scheduler stack is
deployed
--stack STACK, -s STACK
Name of the Instance Scheduler stack