

Hinweis zum Ende des Supports: Am 20. Mai 2026 AWS endet der Support für AWS SimSpace Weaver. Nach dem 20. Mai 2026 können Sie nicht mehr auf die SimSpace Weaver Konsole oder SimSpace Weaver die Ressourcen zugreifen. Weitere Informationen finden Sie unter [AWS SimSpace Weaver Ende des Supports](https://docs.aws.amazon.com/simspaceweaver/latest/userguide/simspaceweaver-end-of-support.html). 

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ührliches Tutorial: Erfahren Sie die Details beim Erstellen der Beispielanwendung
<a name="getting-started_detailed"></a>

Das [Schnellstart-Tutorial](getting-started_quickstart.md) befasste sich mit dem Erstellen, Starten, Stoppen und Löschen einer Beispielsimulation mit `quick-start.py` und`stop-and-delete.py`. In diesem Tutorial wird detailliert beschrieben, wie diese Skripten funktionieren und welche zusätzlichen Parameter diese Skripte verwenden können, um die Flexibilität für benutzerdefinierte Weaver-Simulationen zu maximieren.

**Voraussetzungen**  
Bevor Sie beginnen, stellen Sie sicher, dass Sie die Schritte unter abgeschlossen haben. [Einrichtung für SimSpace Weaver](setting-up.md) 

## Schritt 1: Protokollierung aktivieren (optional)
<a name="getting-started_detailed_enable-logging"></a>

**Um die Protokollierung zu aktivieren**

1. Navigieren Sie zu:

   ```
   {{sdk-folder}}/Samples/PathfindingSample/tools
   ```

1. Öffnen Sie die Schemadatei in einem Texteditor:

   ```
   pathfinding-single-worker-schema.yaml
   ```

1. Suchen Sie den `simulation_properties:` Abschnitt am Anfang der Datei:

   ```
   simulation_properties:
     default_entity_index_key_type: "Vector3<f32>"
   ```

1. Fügen Sie nach der Zeile die folgenden 2 Zeilen ein`simulation_properties:`:

   ```
     log_destination_service: "logs"
     log_destination_resource_name: "MySimulationLogs"
   ```

1. Vergewissern Sie sich, dass Ihr `simulation_properties:` Abschnitt dem folgenden entspricht:

   ```
   simulation_properties:
     log_destination_service: "logs"
     log_destination_resource_name: "MySimulationLogs"
     default_entity_index_key_type: "Vector3<f32>"
   ```

1. Speichern Sie die Datei und beenden Sie den Text-Editor.

## Schritt 2: Starten Sie Ihre Simulation
<a name="getting-started_detailed_start-sim"></a>

Wie im [Schnellstart-Tutorial](getting-started_quickstart.md) gezeigt, sind die grundlegendsten Schritte zum Starten einer Beispielsimulation:

1. Navigieren Sie zu:

   ```
   sdk-folder/Samples/PathfindingSample/tools/cloud
   ```

1. Führen Sie einen der folgenden Befehle aus:
   +  **Docker:** `python quick-start.py` 
   +  **WSL:** `python quick-start.py --al2` 

Dieses Skript automatisiert allgemeine Terminalbefehle, die alle manuell mit dem ausgeführt werden können. AWS CLI Diese Schritte sind:

1.  Laden Sie das Weaver-Schema auf S3 hoch. 
   +  SimSpace Weaver verwendet ein Schema, um Ihre Simulation zu konfigurieren. Das Schema ist eine Klartextdatei im YAML-Format. Weitere Informationen finden Sie unter [Konfiguration Ihrer Simulation](working-with_configuring-simulation.md). 

1.  Erstellen Sie einen benutzerdefinierten Container und laden Sie ihn hoch (optional). 
   +  Wenn Ihr Schema einen benutzerdefinierten Container definiert, erstellt das Schnellstart-Skript das Docker-Image und lädt es auf Amazon ECR hoch. Weitere Informationen finden Sie unter [Maßgeschneiderte Behälter](working-with_custom-containers.md). Ein Beispiel für diese Funktion finden Sie im `PythonBubblesSample` Schema. 

1.  Erstellen Sie das Projekt. 
   +  `quick-start.py`ruft die in definierte `build_project` Funktion auf`build.py`. Dieser Schritt variiert je nach Projekt. Für das PathfindingSample, CMake wird verwendet. Der CMake und Docker-Befehl, für den Sie unter finden, finden Sie unter`build.py`. 

1.  Laden Sie die Build-Artefakte auf S3 hoch. 
   +  Sie können Ihre S3-Buckets überprüfen, um sicherzustellen, dass alle Uploads erfolgreich waren. Weitere Informationen zur Verwendung von Amazon S3 finden Sie unter [Erstellen, Konfigurieren und Arbeiten mit Amazon S3 S3-Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html) im *Amazon Simple Storage Service-Benutzerhandbuch*. 
   +  Die Zips und der S3-Bucket der Beispielanwendung verwenden das folgende Namensformat: 
     +  `weaver-sample-bucket-account-number-region` 
     +  Räumliche App: `ProjectNameSpatial.zip` 
     +  (benutzerdefinierte) App anzeigen: `ProjectNameView.zip` 

1.  Starten Sie die Simulation. 
   +  Dies ist eine Zusammenfassung des `aws simspaceweaver start-simulation` AWS CLI Anrufs. Weitere Informationen finden Sie in der [AWS CLI Befehlsreferenz für SimSpace Weaver.](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/) 
   +  Das Skript wird solange wiederholt, bis der Simulationsstatus entweder `STARTED` oder lautet`FAILED`. Es kann einige Minuten dauern, bis eine Simulation gestartet wird. 

1.  Holen Sie sich die Simulationsdetails. 
   + Die **DescribeSimulation** API bietet Details zu Ihrer Simulation, einschließlich ihres Status. Eine Simulation kann sich in einem der folgenden Zustände befinden: 

**Status des Simulationslebenszyklus**

     1. **`STARTING`**— Ausgangszustand nach dem Anruf **StartSimulation**

     1. **`STARTED`**— Alle räumlichen Apps sind gestartet und funktionieren einwandfrei

     1. **`STOPPING`**— Ausgangszustand nach dem Anruf **StopSimulation**

     1. **`STOPPED`**— Alle Rechenressourcen sind gestoppt

     1. **`DELETING`**— Ausgangszustand nach dem Anruf **DeleteSimulation**

     1. **`DELETED`**— Alle der Simulation zugewiesenen Ressourcen werden gelöscht

     1. **`FAILED`**— Die Simulation hatte einen kritischen Wert error/failure und wurde gestoppt

     1. **`SNAPSHOT_IN_PROGRESS`**— Ein [Snapshot](working-with_snapshots.md) ist in Bearbeitung

**Um Ihre Simulationsdetails zu erhalten**

     1. Rufen Sie die **ListSimulations**-API auf.

        ```
        aws simspaceweaver list-simulations
        ```

        Das Skript sollte Details zu jeder Ihrer Simulationen anzeigen, ähnlich den folgenden: 

        ```
        {
            "Status": "STARTED",
            "CreationTime": 1664921418.09,
            "Name": "MyProjectSimulation_22-10-04_22_10_15",
            "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15",
            "TargetStatus": "STARTED"
        }
        ```

     1. Rufen Sie **DescribeSimulation** an, um Ihre Simulationsdetails zu erhalten. {{simulation-name}}Ersetzen Sie es durch das **Name** Ergebnis Ihrer Simulation aus der Ausgabe des vorherigen Schritts.

        ```
        aws simspaceweaver describe-simulation --simulation {{simulation-name}}
        ```

        Das Skript sollte mehr Details zu der von Ihnen angegebenen Simulation anzeigen, ähnlich der folgenden: 

        ```
        {
            "Status": "STARTED",
            "CreationTime": 1664921418.09,
            "Name": "MyProjectSimulation_22-10-04_22_10_15",
            "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15",
            "TargetStatus": "STARTED"
        }
        ```

1.  Starten Sie benutzerdefinierte Apps. 
   + SimSpace Weaver verwaltet nicht den Lebenszyklus von benutzerdefinierten Apps. Sie müssen Ihre benutzerdefinierten Apps starten. Es empfiehlt sich, Ihre benutzerdefinierten Apps zu starten, bevor Sie Ihre Simulationsuhr starten. Sie können benutzerdefinierte Apps jedoch auch starten, nachdem Sie die Uhr gestartet haben. 

     Sie können die **StartApp** API aufrufen, um Ihre benutzerdefinierten Apps zu starten.

     ```
     aws simspaceweaver start-app --simulation {{simulation-name}} --name {{app-name}} --domain {{domain-name}}
     ```

     Durch den **StartApp** API-Aufruf wird eine neue Instanz der benutzerdefinierten App unter dem von Ihnen angegebenen Namen erstellt und gestartet. Wenn Sie den Namen einer App angeben, die bereits existiert, erhalten Sie eine Fehlermeldung. Wenn Sie eine bestimmte App (Instanz) neu starten möchten, müssen Sie diese App zuerst beenden und löschen.
**Anmerkung**  
Der Status Ihrer Simulation muss vorliegen, `STARTED` bevor Sie benutzerdefinierte Apps starten können.

     Die Beispielanwendung bietet die `ViewApp` benutzerdefinierte App zum Anzeigen Ihrer Simulation. Diese App stellt Ihnen eine statische IP-Adresse und Portnummer zur Verfügung, um die Simulationsclients zu verbinden (Sie werden dies in einem späteren Schritt in diesem Tutorial tun). Sie können sich a **domain** als eine Klasse von Apps vorstellen, die denselben ausführbaren Code und dieselben Startoptionen haben. Das **app name** identifiziert die Instanz der App. Weitere Informationen zu SimSpace Weaver Konzepten finden Sie unter[Schlüsselkonzepte für SimSpace Weaver](what-is_key-concepts.md).

     Sie können die **DescribeApp** API verwenden, um den Status einer benutzerdefinierten App zu überprüfen, nachdem Sie sie gestartet haben.

     ```
     aws simspaceweaver describe-app --simulation {{simulation-name}} --app {{app-name}} --domain {{domain-name}}
     ```

**Um die View-App in diesem Tutorial zu starten**

     1. Rufen Sie an **StartApp** für`ViewApp`.

        ```
        aws simspaceweaver start-app --simulation {{simulation-name}} --name ViewApp --domain MyViewDomain
        ```

     1. Rufen Sie **DescribeApp** an, um den Status Ihrer benutzerdefinierten App zu überprüfen.

        ```
        aws simspaceweaver describe-app --simulation {{simulation-name}} --app ViewApp --domain MyViewDomain
        ```

     Sobald der Status Ihrer benutzerdefinierten App (Instanz) lautet`STARTED`, enthält die Ausgabe von **DescribeApp** die IP-Adresse und die Portnummer für diese benutzerdefinierte App (Instanz). In der folgenden Beispielausgabe ist die IP-Adresse der Wert von `Address` und die Portnummer der Wert von `Actual` im `EndpointInfo` Block. 

     ```
     {
         "Status": "STARTED",
         "Domain": "MyViewDomain",
         "TargetStatus": "STARTED",
         "Simulation": "MyProjectSimulation_22-10-04_22_10_15",
         "LaunchOverrides": {
             "LaunchCommands": []
         },
         "EndpointInfo": {
             "IngressPortMappings": [
                 {
                     "Declared": 7000,
                     "Actual": 4321
                 }
             ],
             "Address": "198.51.100.135"
         },
         "Name": "ViewApp"
     }
     ```
**Anmerkung**  
Der Wert von `Declared` ist die Portnummer, an die Ihr App-Code gebunden werden soll. Der Wert von `Actual` ist die Portnummer, über SimSpace Weaver die Clients eine Verbindung zu Ihrer App herstellen können. SimSpace Weaver ordnet den `Declared` Port dem Port zu. `Actual`
**Anmerkung**  
Sie können das unter beschriebene Verfahren verwenden[Rufen Sie die IP-Adresse und die Portnummer einer benutzerdefinierten App abHolen Sie sich die IP-Adresse und die Portnummer](working-with_get-ip.md), um die IP-Adresse und die Portnummer jeder gestarteten benutzerdefinierten App abzurufen.

1.  Starten Sie die Uhr. 
   + Wenn Sie Ihre Simulation zum ersten Mal erstellen, hat sie eine Uhr, aber die Uhr läuft nicht. Wenn Ihre Uhr nicht läuft, aktualisiert Ihre Simulation ihren Status nicht. Nachdem Sie die Uhr gestartet haben, beginnt sie, Ticks an Ihre Apps zu senden. Bei jedem Tick durchgehen Ihre Geo-Apps die Entitäten, deren Eigentümer sie sind, und übertragen die Ergebnisse an SimSpace Weaver 
**Anmerkung**  
Es kann 30-60 Sekunden dauern, bis die Uhr gestartet wird.

     Rufen Sie die **StartClock**-API auf.

     ```
     aws simspaceweaver start-clock --simulation {{simulation-name}}
     ```
**Anmerkung**  
Die **StartClock** API verwendet Ihre`{{simulation-name}}`, die Sie mithilfe der **ListSimulations** API finden können:  

     ```
     aws simspaceweaver list-simulations
     ```

**Schnellstart-Parameter**
+ -h, --help
  +  Führen Sie diese Parameter auf. 
+ --sauber
  +  Löscht den Inhalt des Build-Verzeichnisses vor dem Erstellen. 
+ --al2
  +  Baut direkt auf dem nativen Computer statt auf Docker. Verwenden Sie dies nur, wenn Sie in einer Amazon Linux 2-Umgebung wie WSL ausgeführt werden. 
+ --nur hochladen
  +  Laden Sie nur das Schema und die App-Zip-Dateien auf Amazon S3 hoch, starten Sie die Simulation nicht. 
+ --kein Build
  +  Überspringe den Neuaufbau des Projekts. 
+ -- kein Behälter
  +  Überspringt die Neuerstellung des Simulationscontainers, der im Schema aufgeführt ist. 
+ --consoleclient
  +  Der in config.py aufgeführte Konsolen-Client wird automatisch erstellt und eine Verbindung hergestellt. 
+ --schema SCHEMA
  +  Welches Schema dieser Aufruf verwenden wird. Standardmäßig ist der Wert 'SCHEMA' in config.py. 
+ --Name NAME
  +  Welchen Namen die Simulation haben wird. Standardmäßig ist der Wert von 'Project\_Name'-Date-Time in config.py voreingestellt. 

## Schritt 3: Überprüfen Sie die Protokolle (optional)
<a name="getting-started_detailed_check-logs"></a>

SimSpace Weaver schreibt Simulationsverwaltungsnachrichten und die Konsolenausgabe Ihrer Apps in Amazon CloudWatch Logs. Weitere Informationen zur Arbeit mit Protokollen finden Sie unter [Arbeiten mit Protokollgruppen und Protokollströmen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) im *Amazon CloudWatch Logs-Benutzerhandbuch*. 

Jede Simulation, die Sie erstellen, hat ihre eigene Protokollgruppe in CloudWatch Logs. Der Name der Protokollgruppe ist im Simulationsschema angegeben. Im folgenden Schemaausschnitt ist der Wert von`log_destination_service`. `logs` Das bedeutet, dass der Wert von der Name einer Protokollgruppe `log_destination_resource_name` ist. In diesem Fall ist die Protokollgruppe`MySimulationLogs`. 

```
simulation_properties:
  log_destination_service: "logs"
  log_destination_resource_name: "MySimulationLogs"
  default_entity_index_key_type: "Vector3<f32>"
```

Sie können die **DescribeSimulation** API auch verwenden, um den Namen der Protokollgruppe für die Simulation zu ermitteln, nachdem Sie sie gestartet haben.

```
aws simspaceweaver describe-simulation --simulation {{simulation-name}}
```

Das folgende Beispiel zeigt den Teil der Ausgabe**DescribeSimulation**, der die Protokollierungskonfiguration beschreibt. Der Name der Protokollgruppe wird am Ende von angezeigt`LogGroupArn`.

```
   
    "LoggingConfiguration": {
        "Destinations": [
            {
                "CloudWatchLogsLogGroup": {
                    "LogGroupArn": "arn:aws:logs:us-west-2:111122223333:log-group:MySimulationLogs"
                }
            }
        ]
    },
```

Jede Simulationsprotokollgruppe enthält mehrere Protokolldatenströme:
+ **Management-Log-Stream** — vom SimSpace Weaver Dienst erzeugte Simulationsverwaltungsnachrichten.

  ```
  /sim/management
  ```
+ **Fehlerprotokollstream** — vom SimSpace Weaver Dienst erzeugte Fehlermeldungen. Dieser Protokollstream ist nur vorhanden, wenn Fehler vorliegen. SimSpace Weaver speichert Fehler, die von Ihren Apps geschrieben wurden, in ihren eigenen App-Protokollstreams (siehe die folgenden Protokollstreams).

  ```
  /sim/errors
  ```
+ **Spatial App Log Streams** (1 für jede Spatial App auf jedem Worker) — Konsolenausgabe, die von Spatial Apps erzeugt wird. Jede Spatial-App schreibt in ihren eigenen Log-Stream. {{spatial-app-id}}Das sind alle Zeichen nach dem abschließenden Schrägstrich am Ende von. {{worker-id}}

  ```
  /domain/{{spatial-domain-name}}/app/worker-{{worker-id}}/{{spatial-app-id}}
  ```
+ **Benutzerdefinierte App-Protokollstreams** (1 für jede benutzerdefinierte App-Instanz) — Konsolenausgabe, die von benutzerdefinierten Apps erzeugt wird. Jede benutzerdefinierte Anwendungsinstanz schreibt in ihren eigenen Protokollstream.

  ```
  /domain/{{custom-domain-name}}/app/{{custom-app-name}}/{{random-id}}
  ```
+ **Protokollstreams von Service-Apps** (1 für jede Service-App-Instanz) — Konsolenausgabe, die von Service-Apps erzeugt wird. Jede Service-App schreibt in ihren eigenen Protokollstream. {{service-app-id}}Das sind alle Zeichen nach dem abschließenden Schrägstrich am Ende von. {{service-app-name}}

  ```
  /domain/{{service-domain-name}}/app/{{service-app-name}}/{{service-app-id}}
  ```

**Anmerkung**  
Die Beispielanwendung hat keine Service-Apps.

## Schritt 4: Sehen Sie sich Ihre Simulation an
<a name="getting-started_detailed_view"></a>

Das SimSpace Weaver App-SDK bietet verschiedene Optionen zum Anzeigen der Beispielanwendung. Sie können den Beispiel-Konsolenclient verwenden, wenn Sie keine lokale Unterstützung für die Unreal Engine-Entwicklung haben. In den Anweisungen für den Unreal Engine-Client wird davon ausgegangen, dass Sie Windows verwenden.

Der Konsolenclient zeigt eine Liste von Entitätsereignissen an, sobald sie auftreten. Der Client erhält die Informationen zum Entitätsereignis von`ViewApp`. Wenn Ihr Konsolenclient die Liste der Ereignisse anzeigt, bestätigt er die Netzwerkkonnektivität anhand der Aktivität `ViewApp` und in Ihrer Simulation.

Die `PathfindingSample` Simulation erzeugt stationäre und sich bewegende Objekte auf einer zweidimensionalen Ebene. Die beweglichen Objekte bewegen sich um die stationären Objekte herum. Der Unreal Engine-Client bietet eine Visualisierung der Entitätsereignisse.

### Konsolen-Client
<a name="getting-started_detailed_view_console-client"></a>

Der Konsolen-Client kann beim Starten eines Beispiels automatisch erstellt und verbunden werden, `quick-start.py` wenn Sie die `--consoleclient` Option angeben. Gehen Sie wie folgt vor, um den Konsolen-Client zu erstellen und `quick-start.py` eine Verbindung herzustellen, nachdem er bereits aufgerufen wurde:

Navigieren Sie zu:

```
sdk-folder/Clients/TCP/CppConsoleClient
```

Führen Sie das Skript aus, um den Client zu erstellen und eine Verbindung herzustellen:

```
python start_client.py --host ip-address --port port-number
```

Das Skript wird Folgendes tun:

1.  Erstellen Sie den Konsolen-Client mit CMake. 

1.  Startet die erstellte ausführbare Datei mit der angegebenen IP-Adresse und Portnummer. 

   ```
   .\WeaverNngConsoleClient.exe --url tcp://{{ip-address:port-number}}
   ```

### Unreal Engine-Client
<a name="getting-started_detailed_view_unreal-client"></a>

Siehe [Den Unreal Engine View Client starten](working-with_unreal-client.md).

## Schritt 5: Stoppen und löschen Sie Ihre Simulation
<a name="getting-started_detailed_stop"></a>

 Navigiere zu: 

```
sdk-folder/Samples/PathfindingSample/tools/cloud
```

Finden Sie die Namen Ihrer Simulationen:

```
aws simspaceweaver list-simulations
```

Stoppen und löschen Sie die Simulation:

```
python stop-and-delete.py --simulation simulation-name
```

Das Skript `stop-and-delete.py` wird Folgendes tun:

1. Rufen Sie den AWS CLI Befehl auf, um eine Simulation zu beenden.
   + `aws simspaceweaver stop-simulation`
   + Weitere Informationen finden Sie unter [AWS CLI Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/stop-simulation.html) für SimSpace Weaver.

1.  Rufen Sie den AWS CLI Befehl auf, um eine Simulation zu löschen. 
   +  `aws simpaceweaver delete-simulation` 
   + Weitere Informationen finden Sie unter [AWS CLI Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/simspaceweaver/delete-simulation.html) für SimSpace Weaver.

**stop-and-delete Parameter**
+ -h, --help
  + Führen Sie diese Parameter auf.
+ --Simulation SIMULATION
  + Der Name der Simulation für stop-and-delete
+ --stopp
  + Stoppen Sie einfach die Simulation. Löscht es nicht.
+ --löschen
  + Löscht nur eine Simulation. Funktioniert nur, wenn die Simulation entweder `STOPPED` oder ist`FAILED`.

## Fehlerbehebung
<a name="getting-started_detailed_troubleshooting"></a>

Siehe [Fehlerbehebung](getting-started_quickstart.md#getting-started_quickstart_troubleshooting) im Schnellstart-Tutorial.