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 Sie die IDT-Einstellungen, um die AWS IoT Greengrass Qualification Suite auszuführen
Bevor Sie Tests ausführen, müssen Sie Einstellungen für AWS Anmeldeinformationen und Geräte auf Ihrem Hostcomputer konfigurieren.
Konfigurieren Sie Ihre AWS Anmeldeinformationen
Sie müssen Ihre IAM-Benutzeranmeldedaten in der
Datei konfigurieren. Verwenden Sie die Anmeldeinformationen für den IDT für den AWS IoT Greengrass Benutzer, der in erstellt wurde. Erstellen und konfigurieren Sie ein AWS-Konto Sie können Ihre Anmeldeinformationen auf zwei Arten angeben:<device-tester-extract-location>
/configs/config.json
-
Anmeldeinformationsdatei
-
Umgebungsvariablen
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
Fügen Sie der credentials
Datei Ihre AWS Anmeldeinformationen im folgenden Format hinzu:
[default] aws_access_key_id =
<your_access_key_id>
aws_secret_access_key =<your_secret_access_key>
Um IDT für die Verwendung von AWS Anmeldeinformationen aus Ihrer credentials
Datei AWS IoT Greengrass zu konfigurieren, bearbeiten Sie Ihre config.json
Datei wie folgt:
{
"awsRegion": "us-west-2",
"auth": {
"method": "file",
"credentials": {
"profile": "default"
}
}
}
Anmerkung
Wenn Sie das default
AWS Profil nicht verwenden, ändern Sie unbedingt den Profilnamen in Ihrer config.json
Datei. Weitere Informationen hierzu finden Sie unter Benannte Profile.
Umgebungsvariablen sind Variablen, die vom Betriebssystem gepflegt und von Systembefehlen verwendet werden. Sie werden nicht gespeichert, wenn Sie die SSH-Sitzung schließen. IDT for AWS IoT Greengrass kann die AWS_SECRET_ACCESS_KEY
Umgebungsvariablen AWS_ACCESS_KEY_ID
und zum Speichern Ihrer AWS Anmeldeinformationen verwenden.
Um 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>
Um den IDT so zu konfigurieren, dass er die Umgebungsvariablen verwendet, bearbeiten Sie den Abschnitt auth
in Ihrer Datei config.json
. Ein Beispiel:
{
"awsRegion": "us-west-2",
"auth": {
"method": "environment"
}
}
Konfigurieren von device.json
Zusätzlich zu den AWS Anmeldeinformationen AWS IoT Greengrass benötigt IDT for Informationen über die Geräte, auf denen Tests ausgeführt werden (z. B. IP-Adresse, Anmeldeinformationen, Betriebssystem und CPU-Architektur).
Sie müssen diese Informationen mittels der Vorlage device.json
in
angeben:
<device_tester_extract_location>
/configs/device.json
[
{
"id": "<pool-id>
",
"sku": "<sku>
",
"features": [
{
"name": "os",
"value": "linux | ubuntu | openwrt"
},
{
"name": "arch",
"value": "x86_64 | armv6l | armv7l | aarch64"
},
{
"name": "container",
"value": "yes | no"
},
{
"name": "docker",
"value": "yes | no"
},
{
"name": "streamManagement",
"value": "yes | no"
},
{
"name": "hsi",
"value": "yes | no"
},
{
"name": "ml",
"value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
},
*********** Remove the section below if the device is not qualifying for ML **************,
{
"name": "mlLambdaContainerizationMode",
"value": "container | process | both"
},
{
"name": "processor",
"value": "cpu | gpu"
},
******************************************************************************************
],
*********** Remove the section below if the device is not qualifying for HSI ***************
"hsm": {
"p11Provider": "/path/to/pkcs11ProviderLibrary
",
"slotLabel": "<slot_label>
",
"slotUserPin": "<slot_pin>
",
"privateKeyLabel": "<key_label>
",
"openSSLEngine": "/path/to/openssl/engine
"
},
********************************************************************************************
*********** Remove the section below if the device is not qualifying for ML ****************
"machineLearning": {
"dlrModelPath": "/path/to/compiled/dlr/model
",
"environmentVariables": [
{
"key": "<environment-variable-name>
",
"value": "<Path:$PATH>
"
}
],
"deviceResources": [
{
"name": "<resource-name>
",
"path": "<resource-path>
",
"type": "device | volume"
}
]
},
******************************************************************************************
"kernelConfigLocation": "",
"greengrassLocation": "",
"devices": [
{
"id": "<device-id>
",
"connectivity": {
"protocol": "ssh",
"ip": "<ip-address>
",
"port": 22,
"auth": {
"method": "pki | password",
"credentials": {
"user": "<user-name>
",
"privKeyPath": "/path/to/private/key
",
"password": "<password>
"
}
}
}
}
]
}
]
Anmerkung
Geben Sie privKeyPath
nur an, wenn method
auf pki
gesetzt ist.
Geben Sie password
nur an, wenn method
auf password
gesetzt ist.
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 Boards nachzuverfolgen.
Anmerkung
Wenn Sie Ihr Motherboard im AWS Partner Gerätekatalog auflisten möchten, muss die hier angegebene SKU mit der SKU übereinstimmen, die Sie bei der Angebotserstellung verwenden.
features
-
Ein Array, das die Funktionen enthält, die das Gerät unterstützt. Alle Funktionen sind erforderlich.
os
undarch
-
Unterstützte Kombinationen aus Betriebssystem (OS) und Architektur:
-
linux
,x86_64
-
linux
,armv6l
-
linux
,armv7l
-
linux
,aarch64
-
ubuntu
,x86_64
-
openwrt
,armv7l
-
openwrt
,aarch64
Anmerkung
Wenn Sie IDT verwenden, um die AWS IoT Greengrass Ausführung in einem Docker-Container zu testen, wird nur die x86_64-Docker-Architektur unterstützt.
-
container
-
Überprüft, ob das Gerät alle Software- und Hardwareanforderungen erfüllt, um Lambda-Funktionen im Containermodus auf einem Greengrass-Kern auszuführen.
Der gültige Wert ist oder.
yes
no
docker
-
Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um den Greengrass Docker Application Deployment Connector für die Ausführung von Containern zu verwenden
Der gültige Wert ist oder.
yes
no
streamManagement
-
Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um AWS IoT Greengrass Stream Manager auszuführen.
Der gültige Wert ist
yes
oderno
. hsi
-
Überprüft, ob die bereitgestellte gemeinsam genutzte HSI-Bibliothek eine Schnittstelle zum Hardware-Sicherheitsmodul (HSM) herstellen kann, und implementiert das erforderliche PKCS #11 korrekt. APIs Das HSM und die freigegebene Bibliothek müssen in der Lage sein, eine CSR zu signieren, TLS-Operationen auszuführen und die korrekten Schlüssellängen sowie den korrekten Algorithmus für den öffentlichen Schlüssel bereitzustellen.
Der gültige Wert ist oder.
yes
no
ml
-
Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um die ML-Inferenz lokal ausführen zu können.
Der gültige Wert kann eine beliebige Kombination aus
mxnet
,tensorflow
dlr
, und seinno
(z. B.mxnet
,mxnet,tensorflow
,mxnet,tensorflow,dlr
, oderno
). mlLambdaContainerizationMode
-
Überprüft, ob das Gerät alle erforderlichen technischen Abhängigkeiten erfüllt, um ML-Inferenz im Container-Modus auf einem Greengrass-Gerät durchzuführen.
Der gültige Wert ist
container
,,process
oder.both
processor
-
Überprüft, ob das Gerät alle Hardwareanforderungen für den angegebenen Prozessortyp erfüllt.
Der gültige Wert ist
cpu
odergpu
.
Anmerkung
Wenn Sie die
ml
Funktioncontainer
,,docker
, oder nicht verwenden möchtenstreamManager
hsi
, können Sie den entsprechenden Wertvalue
auf festlegenno
.Docker unterstützt nur die Funktionsqualifizierung für
streamManagement
undml
. machineLearning
-
Optional. Konfigurationsinformationen für ML-Qualifizierungstests Weitere Informationen finden Sie unter Konfigurieren von device.json für die ML-Qualifizierung.
hsm
-
Optional. Konfigurationsinformationen für Tests mit einem AWS IoT Greengrass Hardware Security Module (HSM). Andernfalls sollte die
hsm
-Eigenschaft weggelassen werden. Weitere Informationen finden Sie unter Integration von Hardware-Sicherheit.Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufssh
festgelegt ist.hsm.p11Provider
-
Der absolute Pfad zur libdl-ladbaren Bibliothek der PKCS#11-Implementierung.
hsm.slotLabel
-
Das Slot-Label zur Identifizierung des Hardwaremoduls
hsm.slotUserPin
-
Die Benutzer-PIN, die zur Authentifizierung des AWS IoT Greengrass Kerns gegenüber dem Modul verwendet wurde.
hsm.privateKeyLabel
-
Das Label zur Identifizierung des Schlüssels im Hardwaremodul.
hsm.openSSLEngine
-
Der absolute Pfad zur
.so
-Datei der OpenSSL-Engine, um die PKCS#11-Unterstützung unter OpenSSL zu aktivieren Wird vom AWS IoT Greengrass OTA-Update-Agenten verwendet.
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. Derzeit sind die einzigen unterstützten Werte
ssh
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.containerId
-
Die Container-ID oder der Name des getesteten Docker-Containers.
Diese Eigenschaft gilt nur, wenn
connectivity.protocol
aufdocker
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.auth.credentials.privKeyPath
-
Der vollständige Pfad zum privaten Schlüssel, der für die Anmeldung beim zu testenden Gerät verwendet wird.
connectivity.port
-
Optional. Die Portnummer, die für SSH-Verbindungen verwendet werden soll.
Der Standardwert ist 22.
Diese Eigenschaft gilt nur, wenn sie auf gesetzt
connectivity.protocol
istssh
. greengrassLocation
-
Der Speicherort der AWS IoT Greengrass Core-Software auf Ihren Geräten.
Für physische Geräte wird dieser Wert nur verwendet, wenn Sie eine vorhandene Installation von verwenden AWS IoT Greengrass. Verwenden Sie dieses Attribut, um IDT anzuweisen, die auf Ihren Geräten installierte Version der AWS IoT Greengrass Core-Software zu verwenden.
Wenn Sie Tests in einem Docker-Container über das Docker-Image oder die von bereitgestellte Docker-Datei ausführen AWS IoT Greengrass, setzen Sie diesen Wert auf.
/greengrass
kernelConfigLocation
-
Optional. Der Pfad zur Kernel-Konfigurationsdatei. AWS IoT Device Tester verwendet diese Datei, um zu überprüfen, ob auf den Geräten die erforderlichen Kernel-Funktionen aktiviert sind. Falls nicht angegeben, verwendet IDT die folgenden Pfade, um nach der Kernel-Konfigurationsdatei zu suchen:
/proc/config.gz
und/boot/config-
. AWS IoT Device Tester verwendet den ersten Pfad, den er findet.<kernel-version>
Konfigurieren von device.json für die ML-Qualifizierung
In diesem Abschnitt werden die optionalen Eigenschaften für die ML-Qualifizierung in der Gerätekonfigurationsdatei beschrieben. Wenn Sie Tests für die ML-Qualifizierung ausführen möchten, müssen Sie die Eigenschaften für Ihren Anwendungsfall definieren.
Sie können die Vorlage device-ml.json
verwenden, um die Konfigurationseinstellungen für Ihr Gerät zu definieren. Diese Vorlage enthält die optionalen ML-Eigenschaften. Sie können auch die Datei device.json
verwenden und die Eigenschaften für die ML-Qualifizierung hinzufügen. Diese Dateien sind unter
gespeichert und enthalten Eigenschaften für die ML-Qualifizierung. Wenn Sie <device-tester-extract-location>
/configsdevice-ml.json
verwenden, müssen Sie die Datei in device.json
umbenennen, bevor Sie IDT-Tests ausführen.
Weitere Informationen zu Eigenschaften für die Gerätekonfiguration, die nicht für die ML-Qualifizierung gelten, finden Sie unter Konfigurieren von device.json.
ml
im Arrayfeatures
-
Die ML-Frameworks, die Ihr Board unterstützt. Diese Eigenschaft erfordert IDT v3.1.0 oder höher.
-
Wenn Ihr Board nur ein Framework unterstützt, geben Sie das Framework an. Zum Beispiel:
{ "name": "ml", "value": "mxnet" }
-
Wenn Ihr Board mehrere Frameworks unterstützt, geben Sie die Frameworks als durch Kommas getrennte Liste an. Zum Beispiel:
{ "name": "ml", "value": "mxnet,tensorflow" }
-
mlLambdaContainerizationMode
im Arrayfeatures
-
Der Containerisierungsmodus, den Sie für die Tests verwenden möchten. Diese Eigenschaft erfordert IDT v3.1.0 oder höher.
-
Wählen Sie
process
, ob ML-Inferenzcode mit einer nicht containerisierten Lambda-Funktion ausgeführt werden soll. Für diese Option ist Version 1.10.x oder höher erforderlich. AWS IoT Greengrass -
Wählen Sie
container
, ob ML-Inferenzcode mit einer containerisierten Lambda-Funktion ausgeführt werden soll. -
Wählen Sie
both
, um ML-Inferenzcode mit beiden Modi auszuführen. Für diese Option ist Version 1.10.x oder höher erforderlich AWS IoT Greengrass .
-
processor
im Arrayfeatures
-
Gibt den Hardwarebeschleuniger an, den Ihr Board unterstützt. Diese Eigenschaft erfordert IDT v3.1.0 oder höher.
-
Wählen Sie
cpu
, wenn Ihr Board eine CPU als Prozessor verwendet. -
Wählen Sie
gpu
, wenn Ihr Board eine GPU als Prozessor verwendet.
-
machineLearning
-
Optional. Konfigurationsinformationen für ML-Qualifizierungstests Diese Eigenschaft erfordert IDT v3.1.0 oder höher.
dlrModelPath
-
Erforderlich, um das Framework
dlr
verwenden zu können. Der absolute Pfad zu Ihrem kompilierten DLR-Modellverzeichnis, das mitresnet18
benannt werden muss. Weitere Informationen finden Sie unter Kompilieren des DLR-Modells.Anmerkung
Im Folgenden sehen Sie einen Beispielpfad unter macOS:
/Users/
.<user>
/Downloads/resnet18 environmentVariables
-
Ein Array von Schlüssel-Wert-Paaren, die Einstellungen dynamisch an ML-Inferenztests übergeben können. Optional für CPU-Geräte. In diesem Abschnitt können Sie Framework-spezifische Umgebungsvariablen hinzufügen, die für Ihren Gerätetyp erforderlich sind. Weitere Informationen zu diesen Anforderungen finden Sie auf der offiziellen Website des Frameworks oder des Geräts. Um beispielsweise MXNet Inferenztests auf einigen Geräten auszuführen, sind möglicherweise die folgenden Umgebungsvariablen erforderlich.
"environmentVariables": [ ... { "key": "PYTHONPATH", "value": "$MXNET_HOME/python:$PYTHONPATH" }, { "key": "MXNET_HOME", "value": "$HOME/mxnet/" }, ... ]
Anmerkung
Das
value
Feld kann je nach Ihrer MXNet Installation variieren.Wenn Sie Lambda-Funktionen testen, die mit Containerisierung auf GPU-Geräten ausgeführt werden, fügen Sie Umgebungsvariablen für die GPU-Bibliothek hinzu. Dadurch kann die GPU Berechnungen ausführen. Informationen zur Verwendung verschiedener GPU-Bibliotheken finden Sie in der offiziellen Dokumentation für die Bibliothek oder das Gerät.
Anmerkung
Konfigurieren Sie die folgenden Schlüssel, wenn für die Funktion
mlLambdaContainerizationMode
container
oderboth
festgelegt ist"environmentVariables": [ { "key": "PATH", "value": "
<path/to/software/bin>
:$PATH" }, { "key": "LD_LIBRARY_PATH", "value": "<path/to/ld/lib>
" }, ... ] deviceResources
-
Erforderlich für GPU-Geräte. Enthält lokale Ressourcen, auf die über Lambda-Funktionen zugegriffen werden kann. Verwenden Sie diesen Abschnitt, um lokale Geräte- und Volume-Ressourcen hinzuzufügen.
-
Geben Sie für Geräteressourcen
"type": "device"
an. Bei GPU-Geräten sollten die Geräteressourcen GPU-bezogene Gerätedateien unter/dev
sein.Anmerkung
Das Verzeichnis
/dev/shm
stellt eine Ausnahme dar. Sie kann nur als eine Volume-Ressource konfiguriert werden. -
Geben Sie für Volume-Ressourcen
"type": "volume"
an.
-