

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.

# Verwaltung von Skripten
<a name="scripts-management"></a>

Die Cloud Migration Factory on AWS-Lösung ermöglicht es Benutzern, die Bibliothek mit Automatisierungsskripten oder Paketen innerhalb der Benutzeroberfläche vollständig zu verwalten. Sie können neue benutzerdefinierte Skripts sowie neue Versionen des Skripts über die Skriptverwaltungsoberfläche hochladen. Wenn mehrere Versionen verfügbar sind, kann ein Administrator zwischen diesen Versionen wechseln und so Updates testen, bevor sie als Standard festgelegt werden. Über die Skriptverwaltungsoberfläche können Administratoren auch Skriptpakete herunterladen, um den Inhalt zu aktualisieren oder zu überprüfen.

Ein unterstütztes Skriptpaket ist ein komprimiertes ZIP-Archiv, das die folgenden obligatorischen Dateien im Stammverzeichnis enthält:
+  **Package-structure.yml** — Wird verwendet, um die Argumente des Skripts und andere Metadaten wie Beschreibung und Standardname zu definieren. Weitere Informationen finden Sie unter [Ein neues Skriptpaket erstellen](#composing-a-new-script-package).
+  **[benutzerdefiniertes Python-Skript] .py** — Dies ist das erste Skript, das ausgeführt wird, wenn ein Job eingereicht wird. Dieses Skript kann andere Skripte und Module aufrufen, und wenn ja, sollten diese im Archiv enthalten sein. Der Name dieses Skripts muss mit dem Wert übereinstimmen, der im `MasterFileName` Schlüssel in der angegeben ist`Package-Structure.yml`.

## Plattformkonfiguration berechnen
<a name="compute-platform-configuration"></a>

Für die Ausführung von Automatisierungsskripten stehen zwei Rechenplattformen zur Verfügung: \$1 „SSM Automation Document“ — Führt das Skript direkt als AWS Systems Manager Automation Document aus, ohne dass ein Automatisierungsserver erforderlich ist \$1 „Automation Server“ — Führt das Skript auf einer dedizierten Automationsserver-Instance aus (dies ist die Standardplattform, falls nicht angegeben)

Die Rechenplattform für die Skriptausführung ist in der `Package-Structure.yml` Datei definiert. Fügen Sie für direkte SSM-basierte Automatisierungen die folgende Zeile hinzu: `MasterFileName` `ComputePlatform: "SSM Automation Document"` 

## Laden Sie ein neues Skriptpaket hoch
<a name="upload-new-script-package"></a>

**Anmerkung**  
Ein Skriptpaket muss dem unterstützten Format entsprechen. Weitere Informationen finden [Sie unter Ein neues Skriptpaket](#composing-a-new-script-package) erstellen.

1. Wählen Sie in der Tabelle **Automatisierungsskripten** die Option **Hinzufügen** aus.

1. Wählen Sie die Paket-Archivdatei aus, die Sie hochladen möchten.

1. Geben Sie einen eindeutigen Namen für das Skript ein. Benutzer referenzieren das Skript mit diesem Namen, um Jobs zu initiieren.

## Laden Sie Skriptpakete herunter
<a name="download-script-packages"></a>

Sie können Skriptpakete von der Konsole herunterladen, um Updates und die Inhaltsüberprüfung zu aktivieren.

1. Wählen Sie **Automatisierung** und dann **Skripte** aus.

1. Wählen Sie das Skript, das Sie herunterladen möchten, aus der Tabelle aus, wählen Sie dann **Aktionen** aus und wählen Sie **Standardversion** **herunterladen oder Neueste Version** herunterladen aus.

Sie können bestimmte Versionen eines Skripts herunterladen. Wählen Sie dazu das Skript, dann **Aktionen** und dann **Standardversion ändern.** Wählen Sie in der Liste **„Standardversion des Skripts**“ die **Option Ausgewählte Version herunterladen** aus.

## Neue Version eines Skriptpakets hinzufügen
<a name="add-new-version-of-a-script-package"></a>

Updates für AWS Cloud Migration Factory-Skriptpakete können im Abschnitt **Automatisierung** > **Skripts** hochgeladen werden, indem Sie die folgenden Schritte ausführen:

1. Wählen Sie **Automatisierung und** dann **Skripte aus.** 

1. Wählen Sie das vorhandene Skript aus, um eine neue Version hinzuzufügen, wählen Sie dann **Aktionen** und dann **Neue Version hinzufügen** aus.

1. Wählen Sie die aktualisierte Paket-Archivdatei aus, die Sie hochladen möchten, und klicken Sie auf **Weiter**. Die neue Skriptversion behält standardmäßig den vorhandenen Namen bei. Geben Sie einen eindeutigen Skriptnamen ein. Jede Namensänderung wird nur auf diese Version des Skripts angewendet.

1. Sie können die neue Version des Skripts zur Standardversion **machen, indem Sie Als Standardversion festlegen** auswählen.

1. Klicken Sie auf **Upload**.

## Löschen von Skriptpaketen und Versionen
<a name="deleting-script-packages-and-versions"></a>

Sie können Skripts oder Versionen eines Skripts nicht zu Prüfungszwecken löschen. Auf diese Weise können Sie genau das Skript überprüfen, das zu einem bestimmten Zeitpunkt auf einem System ausgeführt wurde. Jede Skriptversion hat beim Hochladen eine eindeutige Signatur und ID, die anhand des Auftragsverlaufs aufgezeichnet wird, in dem das Skript und die Version verwendet wurden.

## Ein neues Skriptpaket zusammenstellen
<a name="composing-a-new-script-package"></a>

Cloud Migration Factory on AWS-Skriptpakete unterstützen Python als primäre Skriptsprache. Sie können andere Shell-Skriptsprachen nach Bedarf aus einem Python-Hauptprogramm oder einem Python-Wrapper heraus initiieren. Um schnell ein neues Skriptpaket zu erstellen, empfehlen wir, eine Kopie eines der vorgefertigten Skripts herunterzuladen und es zu aktualisieren, um die erforderliche Aufgabe auszuführen. Sie müssen zuerst ein Master-Python-Skript erstellen, das die Kernfunktionen des Skripts ausführt. Erstellen Sie dann eine `Package-Structure.yml` Datei, um die Argumente und andere Metadaten zu definieren, die das Skript benötigt. Weitere Informationen finden Sie unter `Package-Structure.yml` Optionen.

### Python-Python-Skript
<a name="main-python-script"></a>

Dies ist das erste Hauptskript, das ausgeführt wird, wenn ein Job initiiert wird. Sobald die Ausführung des Skripts abgeschlossen ist, ist die Aufgabe abgeschlossen und der endgültige Rückgabecode bestimmt den Status des Jobs. Die gesamte Ausgabe dieses Skripts wird erfasst, wenn es remote ausgeführt wird, und als Referenz in das Ausgabeüberwachungsprotokoll des Auftrags übergeben. Dieses Protokoll wird auch in Amazon gespeichert CloudWatch.

#### Zugreifen auf Cloud Migration Factory auf AWS-Daten und APIs über ein Skript
<a name="accessing-cloud-migration-factory-on-aws-data-and-apis-from-a-script"></a>

Um Zugriff auf die Cloud Migration Factory auf AWS APIs und Daten zu gewähren, können Sie das mitgelieferte Python-Hilfsmodul verwenden. Das Modul bietet die wichtigsten Funktionen. Nachfolgend finden Sie einige wichtige Funktionen für den Einstieg:

 `factory_login` 

Gibt ein Zugriffstoken zurück, das zum Aufrufen von Cloud Migration Factory auf AWS verwendet werden kann APIs. Diese Funktion versucht, sich mit einer Reihe von Anmeldeversuchen bei CMF anzumelden:

1. Durch den Versuch, auf das Standardgeheimnis zuzugreifen, das die Benutzer-ID und das Passwort des Dienstkontos enthält, falls es existiert und der Zugriff erlaubt ist. Dieser geheime Name **MFServiceAccount-`userpool id`]** wird überprüft.

1. Wenn Schritt 1 nicht erfolgreich ist und der Benutzer das Skript über die Befehlszeile ausführt, wird der Benutzer aufgefordert, eine AWS Cloud Migration Factory-Benutzer-ID und ein Passwort einzugeben. Wenn die Ausführung von einem Remote-Automatisierungsauftrag aus erfolgt, schlägt der Job fehl.

 `get_server_credentials` 

Gibt die Anmeldeinformationen für einen Server zurück, der in AWS Cloud Migration Factory entweder im Credentials Manager oder durch Benutzereingabe gespeichert ist. Diese Funktion überprüft eine Reihe verschiedener Quellen, um die Anmeldeinformationen für einen bestimmten Server zu ermitteln. Die Reihenfolge der Quellen ist:

1. Wenn local\$1username und local\$1password gesetzt und gültig sind, werden diese zurückgegeben.

1. Wenn secret\$1overide gesetzt ist, wird dies verwendet, um das angegebene Geheimnis von AWS Secret Manager abzurufen. Andernfalls wird geprüft, ob der Serverdatensatz den Schlüssel **secret\$1name** enthält und dieser nicht leer ist, dann wird dieser geheime Name verwendet.

1. Wenn die angegebenen Geheimnisse nicht gefunden oder darauf zugegriffen werden können, fordert die Funktion den Benutzer zur Eingabe der Anmeldeinformationen auf, jedoch nur, wenn **no\$1user\$1prompts** auf **False** gesetzt ist, andernfalls gibt sie einen Fehler zurück.

 **Parameter** 

local\$1username — Wenn übergeben, wird es zurückgegeben.

local\$1password - Wenn es übergeben wurde, wird es zurückgegeben.

server — CMF-Serverdikt, wie von get\$1factory\$1servers. in AWS Cloud Migration Factory zurückgegeben.

secret\$1overIDE - Wird übergeben, wird der geheime Name festgelegt, der vom Secrets Manager für diesen Server abgerufen werden soll.

no\$1user\$1prompts - Weist der Funktion an, einen Benutzer nicht zur Eingabe einer Benutzer-ID und eines Passworts aufzufordern, wenn diese nicht gespeichert sind. Dies sollte für jedes Remote-Automatisierungsskript True sein.

 `get_credentials` 

Ruft die mit AWS Cloud Migration Factory Credentials Manager gespeicherten Anmeldeinformationen von Secrets Manager ab.

 **Parameter** 

secret\$1name — Name des abzurufenden Geheimnisses.

get\$1factory\$1servers

Gibt ein Array von Servern aus dem AWS Cloud Migration Factory-Datenspeicher zurück, basierend auf der angegebenen Waveid.

 **Parameter** 

waveid — Wave-Record-ID der Server, die zurückgegeben werden.

token — Authentifizierungstoken, das von der FactoryLogin Lambda-Funktion abgerufen wurde.

app\$1ids — Optionale Liste der Anwendungs-IDs innerhalb der Welle, die aufgenommen werden sollen.

server\$1ids — Optionale Liste der Server-IDs innerhalb der Wave und der einzubeziehenden Anwendungen.

os\$1split — Wenn auf gesetzt`true`, werden zwei Listen zurückgegeben, eine für Linux- und eine für Windows-Server. Wenn False angegeben ist, wird eine einzelne kombinierte Liste zurückgegeben.

rtype — Optionale Zeichenfolge, um nur nach einer bestimmten Migrationsstrategie von Servern zu filtern, d. h. wenn der Wert „Rehost“ übergeben wird, werden nur Server mit Rehost zurückgegeben.

#### Endgültige Zusammenfassung der Nachricht
<a name="final-message-summary"></a>

Es wird empfohlen, eine zusammenfassende Meldung mit dem Ergebnis des Skripts als endgültige Ausgabe auf dem Bildschirm oder Sysout bereitzustellen. Dies wird auf der Konsole in der Eigenschaft **Letzte Nachricht** angezeigt, die einen schnellen Status des Skriptergebnisses bietet, ohne dass der Benutzer das vollständige Ausgabeprotokoll lesen muss.

#### Rückgabecode
<a name="return-code"></a>

Das Haupt-Python-Skript sollte beim Beenden einen Rückgabecode ungleich Null zurückgeben, wenn die Funktion des Skripts nicht vollständig erfolgreich war. Beim Empfang eines Rückgabecodes ungleich Null wird der Auftragsstatus im Auftragsprotokoll als **Fehlgeschlagen** angezeigt, was dem Benutzer bedeutet, dass er das Ausgabeprotokoll auf Einzelheiten des Fehlers überprüfen sollte.

### YAML Package-structure.yml-Optionen
<a name="package-structure.yml-options"></a>

#### Beispiel für eine YAML-Datei
<a name="example"></a>

```
Name: "0-Check MGN Prerequisites"
Description: "This script will verify the source servers meet the basic requirements for AWS MGN agent installation."
MasterFileName: "0-Prerequisites-checks.py"
UpdateUrl: ""
Arguments:
-
name: "ReplicationServerIP"
description: "Replication Server IP."
long_desc: "IP Address of an AWS MGN Replication EC2 Instance."
type: "standard"
required: true
-
name: "SecretWindows"
long_desc: "Windows Secret to use for credentials."
description: "Windows Secret"
type: "relationship"
rel_display_attribute: "Name"
rel_entity: "secret"
rel_key: "Name"
-
name: "SecretLinux"
long_desc: "Linux Secret to use for credentials."
description: "Linux Secret"
type: "relationship"
rel_display_attribute: "Name"
rel_entity: "secret"
rel_key: "Name"
-
name: "Waveid"
description: "Wave Name"
type: "relationship"
rel_display_attribute: "wave_name"
rel_entity: "wave"
rel_key: "wave_id"
validation_regex: "^(?!\\s*$).+"
validation_regex_msg: "Wave must be provided."
required: true
SchemaExtensions:
-
schema: "server"
name: "server_pre_reqs_output"
description: "Pre-Req Output"
type: "string"
```

#### Beschreibungen der YAML-Schlüssel
<a name="keys"></a>

Erforderlich

 **Name** — Standardname, den das Skript beim Import verwendet.

 **Beschreibung** — Beschreibung der Verwendung des Skripts.

 **MasterFileName**- Dies ist der Ausgangspunkt für die Ausführung des Skripts. Es muss sich um einen Python-Dateinamen handeln, der im Skriptpaketarchiv enthalten ist.

 **Argumente** — Eine Liste von Argumenten, die das MasterFileName Python-Skript akzeptiert. Jedes Argument, das angegeben werden muss, hat das AWS Cloud Migration Factory-Attributdefinitionsformat. Erforderliche Eigenschaften für jedes Argument sind **Name** und **Typ**, alle anderen Eigenschaften sind optional.

Optional

 **ComputePlatform**- Dieser Schlüssel definiert, wo das Skript ausgeführt wird. Wählen Sie „SSM Automation Document“, um direkt in AWS Systems Manager ohne Automatisierungsserver ausgeführt zu werden. Wenn nicht angegeben, erfolgt die Ausführung standardmäßig auf dem Automatisierungsserver.

 **UpdateUrl**- Geben Sie eine URL an, unter der die Quelle des Skriptpakets für die Bereitstellung von Updates verfügbar ist. Derzeit dient dies nur als Referenz.

 **SchemaExtensions**- Eine Liste von Attributen, die das Python-Skript im Schema enthalten muss, um Ausgabe zu speichern oder zusätzliche Daten abzurufen. Jedes Attribut muss im AWS CMF-Attributdefinitionsformat angegeben werden. Erforderliche Eigenschaften für jedes Attribut sind **Schema**, **Name, Beschreibung** und **Typ**. Alle anderen Eigenschaften sind optional. Alle neuen Attribute werden dem Schema automatisch hinzugefügt, wenn das Skript zum ersten Mal geladen wird, und Änderungen SchemaExtensions daran werden für neue Versionen des Skripts nicht verarbeitet. Wenn dies für das Hinzufügen eines neuen Skripts erforderlich ist, müssen manuelle Aktualisierungen des Schemas vorgenommen werden.