AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.
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.
Konfigurieren von Einstellungen für Testläufer
Um benutzerdefinierte Test-Suiten auszuführen, müssen Testläufer ihre Einstellungen basierend auf der Testsuite konfigurieren, die sie ausführen möchten. Die Einstellungen werden basierend auf JSON-Konfigurationsdateivorlagen angegeben, die sich im
folder. Bei Bedarf müssen Testläufer auch eingerichtet werdenAWSAnmeldeinformationen, die IDT verwendet, um eine Verbindung mit demAWSCloud. <device-tester-extract-location>
/configs/
Als Testschreiber müssen Sie diese Dateien so konfigurierendebuggen Sie Ihre Testsuiteaus. Sie müssen Anweisungen geben, um Läufer zu testen, damit sie die folgenden Einstellungen für die Ausführung Ihrer Test-Suites nach Bedarf konfigurieren können.
Konfigurieren von device.json
Diedevice.json
-Datei enthält Informationen zu den Geräten, auf denen Tests ausgeführt werden (z. B. IP-Adresse, Anmeldeinformationen, Betriebssystem und CPU-Architektur).
Testläufer können diese Informationen mittels der folgenden Vorlage bereitstellendevice.json
Datei im Verzeichnis
folder.<device-tester-extract-location>
/configs/
[ { "id": "
<pool-id>
", "sku": "<pool-sku>
", "features": [ { "name": "<feature-name>
", "value": "<feature-value>
", "configs": [ { "name": "<config-name>
", "value":"<config-value>
" } ], } ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
id
-
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten Gerätepool, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.
sku
-
Ein alphanumerischer Wert, durch den das zu testende Gerät eindeutig identifiziert wird. Die SKU wird verwendet, um qualifizierte Geräte nachzuverfolgen.
Anmerkung
Wenn Sie Ihr Board im AWS Partner-Gerätekatalog auflisten möchten, muss die hier angegebene SKU mit der SKU übereinstimmen, die Sie während des Einreichungsprozesses verwenden.
features
-
Optional. Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Gerätefunktionen sind benutzerdefinierte Werte, die Sie in Ihrer Testsuite konfigurieren. Sie müssen Ihren Testläufern Informationen zu den Feature-Namen und Werten zur Verfügung stellen, die in die
device.json
file. Wenn Sie beispielsweise ein Gerät testen möchten, das als MQTT-Server für andere Geräte fungiert, können Sie Ihre Testlogik so konfigurieren, dass bestimmte unterstützte Stufen für ein Feature namensMQTT_QOS
aus. Testläufer geben diesen Funktionsnamen an und legen den Funktionswert auf die QOS-Ebenen fest, die von ihrem Gerät unterstützt werden. Sie finden die bereitgestellten Informationen imIDT-Kontextmit demdevicePool.features
Abfrage oder von derKontext der Zustandsautomatenmit dempool.features
abfragen.features.name
-
Der Name der Funktion.
features.value
-
Die unterstützten Feature-Werte.
features.configs
-
Bei Bedarf Konfigurationseinstellungen für das Feature.
features.config.name
-
Der Name der Konfigurationseinstellung.
features.config.value
-
Die unterstützten Einstellungswerte.
devices
-
Eine Reihe von Geräten im Pool, die getestet werden sollen. Mindestens ein Gerät muss ausgewählt werden.
devices.id
-
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.
connectivity.protocol
-
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Jedes Gerät in einem Pool muss dasselbe Protokoll verwenden.
Derzeit werden nur die Werte unterstützt
ssh
unduart
für physische Geräte unddocker
für Docker-Container. connectivity.ip
-
Die IP-Adresse des zu testenden Geräts.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.port
-
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.auth
-
Authentifizierungsinformationen für die Verbindung.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist.connectivity.auth.method
-
Die Authentifizierungsmethode, die für den Zugriff über ein bestimmtes Verbindungsprotokoll auf ein Gerät verwendet wird.
Unterstützte Werte sind:
-
pki
-
password
-
connectivity.auth.credentials
-
Die für die Authentifizierung verwendeten Anmeldeinformationen.
connectivity.auth.credentials.password
-
Das Passwort für die Anmeldung am Gerät wird überprüft.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpassword
festgelegt ist. connectivity.auth.credentials.privKeyPath
-
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpki
festgelegt ist. connectivity.auth.credentials.user
-
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.
connectivity.serialPort
-
Optional. Der serielle Port, an den das Gerät angeschlossen ist.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufuart
festgelegt ist. connectivity.containerId
-
Die Container-ID oder der Name des getesteten Docker-Containers.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufdocker
festgelegt ist. connectivity.containerUser
-
Optional. Der Name des Benutzers für den Benutzer im Container. Der Standardwert ist der in der Dockerfile angegebene Benutzer.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufdocker
festgelegt ist.
Anmerkung
Um zu überprüfen, ob Testläufer die falsche Geräteverbindung für einen Test konfigurieren, können Sie abrufen
pool.Devices[0].Connectivity.Protocol
aus dem Zustandsmaschine-Kontext aus und vergleichen Sie ihn mit dem erwarteten Wert in aChoice
Zustand. Wenn ein falsches Protokoll verwendet wird, drucken Sie eine Nachricht mitLogMessage
Staat und Übergang zumFail
Zustand.Alternativ können Sie den Fehlerbehandlungscode verwenden, um einen Testfehler für falsche Gerätetypen zu melden.
(Optional) Benutzerdata.json konfigurieren
Dieuserdata.json
-Datei enthält alle zusätzlichen Informationen, die von einer Testsuite benötigt werden, aber nicht imdevice.json
file. Das Format dieser Datei hängt vomuserdata_scheme.jsonOrdnerDas ist in der Testsuite definiert. Wenn Sie ein Testautor sind, stellen Sie sicher, dass Sie diese Informationen Benutzern zur Verfügung stellen, die die von Ihnen geschriebenen Test-Suites ausführen.
(Optional) resource.json konfigurieren
Dieresource.json
enthält Informationen über alle Geräte, die als Ressourcengeräte verwendet werden. Ressourcengeräte sind Geräte, die zum Testen bestimmter Funktionen eines zu testenden Geräts erforderlich sind. Um beispielsweise die Bluetooth-Fähigkeit eines Geräts zu testen, können Sie ein Ressourcengerät verwenden, um zu testen, ob Ihr Gerät erfolgreich eine Verbindung herstellen kann. Ressourcengeräte sind optional und Sie können so viele Ressourcengeräte benötigen, wie Sie benötigen. Als Testautor benutzt du dastest.json-Dateium die Funktionen des Ressourcengeräts zu definieren, die für einen Test erforderlich sind. Testläufer benutzen dann dieresource.json
-Datei, um einen Pool von Ressourcengeräten bereitzustellen, die über die erforderlichen Funktionen verfügen. Stellen Sie sicher, dass Sie diese Informationen Benutzern zur Verfügung stellen, die die von Ihnen geschriebenen Test-Suiten ausführen.
Testläufer können diese Informationen mittels der folgenden Vorlage bereitstellenresource.json
Datei im Verzeichnis
folder.<device-tester-extract-location>
/configs/
[ { "id": "
<pool-id>
", "features": [ { "name": "<feature-name>
", "version": "<feature-value>
", "jobSlots":<job-slots>
} ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
id
-
Eine benutzerdefinierte alphanumerische ID, die eine Sammlung von Geräten, den sogenannten Gerätepool, eindeutig identifiziert. Geräte, die zu einem Pool gehören, müssen über identische Hardware verfügen. Bei der Ausführung einer Reihe von Tests werden Geräte im Pool verwendet, um die Workload zu parallelisieren. Mehrere Geräte werden verwendet, um verschiedene Tests auszuführen.
features
-
Optional. Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Die in diesem Feld erforderlichen Informationen sind imtest.json-Dateienin der Testsuite und bestimmt, welche Tests ausgeführt werden sollen und wie diese Tests ausgeführt werden. Wenn die Testsuite keine Funktionen benötigt, ist dieses Feld nicht erforderlich.
features.name
-
Der Name der Funktion.
features.version
-
Die Feature-Version.
features.jobSlots
-
Einstellung, um anzugeben, wie viele Tests das Gerät gleichzeitig verwenden können. Der Standardwert ist
1
.
devices
-
Eine Reihe von Geräten im Pool, die getestet werden sollen. Mindestens ein Gerät muss ausgewählt werden.
devices.id
-
Eine benutzerdefinierte eindeutige Kennung für das zu testende Gerät.
connectivity.protocol
-
Das Kommunikationsprotokoll, das für die Kommunikation mit diesem Gerät verwendet wird. Jedes Gerät in einem Pool muss dasselbe Protokoll verwenden.
Derzeit werden nur die Werte unterstützt
ssh
unduart
für physische Geräte unddocker
für Docker-Container. connectivity.ip
-
Die IP-Adresse des zu testenden Geräts.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.port
-
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist. connectivity.auth
-
Authentifizierungsinformationen für die Verbindung.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist.connectivity.auth.method
-
Die Authentifizierungsmethode, die für den Zugriff über ein bestimmtes Verbindungsprotokoll auf ein Gerät verwendet wird.
Unterstützte Werte sind:
-
pki
-
password
-
connectivity.auth.credentials
-
Die für die Authentifizierung verwendeten Anmeldeinformationen.
connectivity.auth.credentials.password
-
Das Passwort für die Anmeldung am Gerät wird überprüft.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpassword
festgelegt ist. connectivity.auth.credentials.privKeyPath
-
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung bei dem zu testenden Gerät verwendet wird.
Dieser Wert gilt nur, wenn
connectivity.auth.method
aufpki
festgelegt ist. connectivity.auth.credentials.user
-
Der Benutzername für die Anmeldung bei dem zu testenden Gerät.
connectivity.serialPort
-
Optional. Der serielle Port, an den das Gerät angeschlossen ist.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufuart
festgelegt ist. connectivity.containerId
-
Die Container-ID oder der Name des getesteten Docker-Containers.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufdocker
festgelegt ist. connectivity.containerUser
-
Optional. Der Name des Benutzers für den Benutzer im Container. Der Standardwert ist der in der Dockerfile angegebene Benutzer.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufdocker
festgelegt ist.
(Optional) Config.json konfigurieren
Dieconfig.json
enthält Konfigurationsinformationen für IDT. In der Regel müssen Testläufer diese Datei nicht ändern, außer um ihreAWSBenutzeranmeldeinformationen für IDT und optional einAWSRegion. WennAWSAnmeldeinformationen mit erforderlichen Berechtigungen werden bereitgestelltAWS IoTDevice Tester sammelt und übermittelt Nutzungsmetriken anAWSaus. Dies ist eine optionale Funktion und wird verwendet, um IDT-Funktionalität zu verbessern. Weitere Informationen finden Sie unter IDT-Nutzungsmetriken.
Testläufer können ihreAWSAnmeldeinformationen auf eine der folgenden Arten:
-
Anmeldeinformationen-Datei
IDT verwendet die gleiche Anmeldeinformationsdatei wie das AWS CLI. Weitere Informationen finden Sie unter Konfigurations- und Anmeldeinformationsdateien.
Der Speicherort der Datei mit den Anmeldeinformationen variiert je nach verwendetem Betriebssystem:
-
macOS Linux:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
Umgebungsvariablen
Umgebungsvariablen sind Variablen, die vom Betriebssystem gepflegt und von Systembefehlen verwendet werden. Während einer SSH-Sitzung definierte Variablen sind nach dem Schließen dieser Sitzung nicht verfügbar. IDT kann das
AWS_ACCESS_KEY_ID
undAWS_SECRET_ACCESS_KEY
Zu speicherende UmgebungsvariablenAWSReferenzenUm diese Variablen auf Linux, macOS oder Unix festzulegen, verwenden Sie export:
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
In Windows können Sie die Variablen mit set festlegen:
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
So konfigurieren SieAWSAnmeldeinformationen für IDT, Testläufer bearbeitenauth
-Abschnitt imconfig.json
Datei im Verzeichnis
folder.<device-tester-extract-location>
/configs/
{ "log": { "location": "
logs
" }, "configFiles": { "root": "configs
", "device": "configs/device.json
" }, "testPath": "tests
", "reportPath": "results
", "awsRegion": "<region>
", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>
" } } } ]
Nachfolgend sind alle Pflichtfelder beschrieben:
Anmerkung
Alle Pfade in dieser Datei sind relativ zum<device-tester-extract-location>
aus.
log.location
-
Der Pfad zum Logs-Ordner im
<device-tester-extract-location>
aus. configFiles.root
-
Der Pfad zu dem Ordner, in dem sich die Konfigurationsdateien befinden.
configFiles.device
-
Der Pfad zum
device.json
file. testPath
-
Der Pfad zu dem Ordner, der Testsuiten enthält.
reportPath
-
Der Pfad zu dem Ordner, der Testergebnisse enthält, nachdem IDT eine Testsuite ausgeführt hat.
awsRegion
-
Optional. DieAWSRegion, die Test-Suiten verwenden werden. Wenn nicht festgelegt, verwenden Test-Suites die Standardregion, die in jeder Testsuite angegeben ist.
auth.method
-
Die Methode, die IDT zum Abrufen verwendetAWS-Anmeldeinformationen. Unterstützte Werte sind
file
um Anmeldeinformationen aus einer -Anmeldeinformationsdatei abzurufen, undenvironment
um Anmeldeinformationen mit Umgebungsvariablen abzurufen. auth.credentials.profile
-
Das aus der Anmeldeinformationen zu verwendende -Anmeldeinformationsprofil. Diese Eigenschaft gilt nur, wenn
auth.method
auffile
festgelegt ist.