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.
Schritt 5: Erstellen Sie Ihre Komponente im AWS IoT Greengrass Service
Wenn Sie mit der Entwicklung einer Komponente auf Ihrem Kerngerät fertig sind, können Sie sie in den AWS IoT Greengrass
Dienst hochladen AWS Cloud. Sie können die Komponente auch direkt in der AWS IoT Greengrass Konsole
-
Laden Sie Komponentenartefakte in einen S3-Bucket hoch.
-
Fügen Sie den Amazon Simple Storage Service (Amazon S3) jedes Artefakts URI zum Komponentenrezept hinzu.
-
Erstellen Sie eine Komponente AWS IoT Greengrass aus dem Komponentenrezept.
In diesem Abschnitt führen Sie diese Schritte auf Ihrem Greengrass-Core-Gerät aus, um Ihre Hello World-Komponente in den AWS IoT Greengrass Dienst hochzuladen.
-
Verwenden Sie einen S3-Bucket in Ihrem AWS Konto, um AWS IoT Greengrass Komponentenartefakte zu hosten. Wenn Sie die Komponente auf einem Kerngerät bereitstellen, lädt das Gerät die Artefakte der Komponente aus dem Bucket herunter.
Sie können einen vorhandenen S3-Bucket verwenden oder einen neuen Bucket erstellen.
-
Wählen Sie in der Amazon S3 S3-Konsole
unter Buckets die Option Create Bucket aus. -
Geben Sie als Bucket-Namen einen eindeutigen Bucket-Namen ein. Sie können beispielsweise die Datei
greengrass-component-artifacts-
verwenden. Ersetzenregion
-123456789012
123456789012
mit Ihrer AWS Konto-ID undregion
mit der AWS-Region , die Sie für dieses Tutorial verwenden. -
Wählen Sie als AWS Region die AWS Region aus, die Sie für dieses Tutorial verwenden.
-
Wählen Sie Bucket erstellen aus.
-
Wählen Sie unter Buckets den Bucket aus, den Sie erstellt haben, und laden Sie das
hello_world.py
Skript in denartifacts/com.example.HelloWorld/1.0.0
Ordner im Bucket hoch. Informationen zum Hochladen von Objekten in S3-Buckets finden Sie unter Hochladen von Objekten im Amazon Simple Storage Service-Benutzerhandbuch. -
Kopieren Sie das S3 URI des
hello_world.py
Objekts in den S3-Bucket. Dies URI sollte dem folgenden Beispiel ähneln. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets.s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
-
-
Erlauben Sie dem Core-Gerät den Zugriff auf Komponentenartefakte im S3-Bucket.
Jedes Kerngerät hat eine zentrale IAM Geräterolle, die es ihm ermöglicht, mit der Cloud zu interagieren AWS IoT und Logs an die AWS Cloud zu senden. Diese Geräterolle erlaubt standardmäßig keinen Zugriff auf S3-Buckets. Sie müssen also eine Richtlinie erstellen und anhängen, die es dem Kerngerät ermöglicht, Komponentenartefakte aus dem S3-Bucket abzurufen.
Wenn die Rolle Ihres Geräts bereits den Zugriff auf den S3-Bucket ermöglicht, können Sie diesen Schritt überspringen. Andernfalls erstellen Sie eine IAM Richtlinie, die den Zugriff ermöglicht, und hängen Sie sie wie folgt an die Rolle an:
-
Wählen Sie im Navigationsmenü der IAMKonsole
Richtlinien und dann Richtlinie erstellen aus. -
Ersetzen Sie auf der JSONRegisterkarte den Platzhalterinhalt durch die folgende Richtlinie. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets, der Komponentenartefakte für das Kerngerät zum Herunterladen enthält.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Wählen Sie Weiter.
-
Geben Sie im Abschnitt Richtliniendetails für Name den Text ein.
MyGreengrassV2ComponentArtifactPolicy
-
Wählen Sie Create Policy (Richtlinie erstellen) aus.
-
Wählen Sie im Navigationsmenü der IAMKonsole
die Option Rolle und dann den Namen der Rolle für das Kerngerät aus. Sie haben diesen Rollennamen bei der Installation der AWS IoT Greengrass Core-Software angegeben. Wenn Sie keinen Namen angegeben haben, lautet die Standardeinstellung GreengrassV2TokenExchangeRole
. -
Wählen Sie unter Berechtigungen die Option Berechtigungen hinzufügen und anschließend Richtlinien anhängen aus.
-
Aktivieren Sie auf der Seite Berechtigungen hinzufügen das Kontrollkästchen neben der
MyGreengrassV2ComponentArtifactPolicy
Richtlinie, die Sie erstellt haben, und wählen Sie dann Berechtigungen hinzufügen aus.
-
-
Verwenden Sie das Komponentenrezept, um eine Komponente in der AWS IoT Greengrass Konsole
zu erstellen. -
Wählen Sie im Navigationsmenü der AWS IoT Greengrass Konsole
Komponenten und anschließend Komponente erstellen aus. -
Wählen Sie unter Komponenteninformationen die Option Rezeptur eingeben als ausJSON. Das Platzhalterrezept sollte dem folgenden Beispiel ähneln.
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] } ] }
-
Ersetzen Sie den Platzhalter URI in jedem
Artifacts
Abschnitt durch S3 URI Ihreshello_world.py
Objekts. -
Wählen Sie Komponente erstellen.
-
Auf dem com.example. HelloWorldVergewissern Sie sich auf der Komponentenseite, dass der Status der Komponente Deployable lautet.
-
Um deine Hello World-Komponente hochzuladen
-
Verwenden Sie einen S3-Bucket in Ihrem AWS-Konto , um AWS IoT Greengrass Komponentenartefakte zu hosten. Wenn Sie die Komponente auf einem Core-Gerät bereitstellen, lädt das Gerät die Artefakte der Komponente aus dem Bucket herunter.
Sie können einen vorhandenen S3-Bucket verwenden oder den folgenden Befehl ausführen, um einen Bucket zu erstellen. Dieser Befehl erstellt einen Bucket mit Ihrer AWS-Konto ID und AWS-Region bildet einen eindeutigen Bucket-Namen. Ersetzen
123456789012
mit deiner AWS-Konto ID undregion
mit dem AWS-Region , das du für dieses Tutorial verwendest.aws s3 mb s3://greengrass-component-artifacts-
123456789012
-region
Der Befehl gibt die folgenden Informationen aus, wenn die Anfrage erfolgreich ist.
make_bucket: greengrass-component-artifacts-
123456789012
-region
-
Erlauben Sie dem Core-Gerät den Zugriff auf Komponentenartefakte im S3-Bucket.
Jedes Kerngerät hat eine zentrale IAM Geräterolle, die es ihm ermöglicht, mit dem zu interagieren AWS IoT und Protokolle an das zu senden AWS Cloud. Diese Geräterolle erlaubt standardmäßig keinen Zugriff auf S3-Buckets. Sie müssen also eine Richtlinie erstellen und anhängen, die es dem Kerngerät ermöglicht, Komponentenartefakte aus dem S3-Bucket abzurufen.
Wenn die Rolle des Kerngeräts bereits den Zugriff auf den S3-Bucket ermöglicht, können Sie diesen Schritt überspringen. Andernfalls erstellen Sie eine IAM Richtlinie, die den Zugriff ermöglicht, und hängen Sie sie wie folgt an die Rolle an:
-
Erstellen Sie eine Datei mit dem Namen
component-artifact-policy.json
und kopieren Sie Folgendes JSON in die Datei. Diese Richtlinie ermöglicht den Zugriff auf alle Dateien in einem S3-Bucket. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Führen Sie den folgenden Befehl aus, um die Richtlinie aus dem Richtliniendokument in zu erstellen.
component-artifact-policy.json
Kopieren Sie die Richtlinie Amazon Resource Name (ARN) aus den Richtlinienmetadaten in der Ausgabe. Sie verwenden diesARN, um diese Richtlinie im nächsten Schritt an die zentrale Geräterolle anzuhängen.
-
Führen Sie den folgenden Befehl aus, um die Richtlinie an die zentrale Geräterolle anzuhängen. Ersetzen
GreengrassV2TokenExchangeRole
mit dem Namen der Rolle für das Kerngerät. Sie haben diesen Rollennamen bei der Installation der AWS IoT Greengrass Core-Software angegeben. Ersetzen Sie die Richtlinie ARN durch die Richtlinie ARN aus dem vorherigen Schritt.Wenn der Befehl keine Ausgabe hat, war er erfolgreich. Das Core-Gerät kann jetzt auf Artefakte zugreifen, die Sie in diesen S3-Bucket hochladen.
-
-
Laden Sie das Python-Skriptartefakt Hello World in den S3-Bucket hoch.
Führen Sie den folgenden Befehl aus, um das Skript in denselben Pfad im Bucket hochzuladen, in dem sich das Skript auf Ihrem AWS IoT Greengrass Core befindet. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets.
Der Befehl gibt eine Zeile aus, die mit „Wenn die Anfrage erfolgreich ist“ beginnt.
upload:
-
Fügen Sie Amazon S3 des Artefakts URI zum Komponentenrezept hinzu.
Amazon S3 URI besteht aus dem Bucket-Namen und dem Pfad zum Artefaktobjekt im Bucket. Das Amazon S3 Ihres Skript-Artefakts URI ist dasURI, in das Sie das Artefakt im vorherigen Schritt hochgeladen haben. Dies URI sollte dem folgenden Beispiel ähneln. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets.
s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Um das Artefakt zum Rezept hinzuzufügen, fügen Sie eine Liste hinzu,
Artifacts
die eine Struktur mit dem Amazon S3 URI enthält. -
Erstellen Sie eine Komponentenressource AWS IoT Greengrass aus dem Rezept. Führen Sie den folgenden Befehl aus, um die Komponente aus dem Rezept zu erstellen, das Sie als Binärdatei bereitstellen.
Die Antwort ähnelt dem folgenden Beispiel, wenn die Anfrage erfolgreich ist.
{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "Mon Nov 30 09:04:05 UTC 2020", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }Kopieren Sie das
arn
aus der Ausgabe, um im nächsten Schritt den Status der Komponente zu überprüfen.Anmerkung
Sie können Ihre Hello World-Komponente auch in der AWS IoT Greengrass Konsole
auf der Komponentenseite sehen. -
Stellen Sie sicher, dass die Komponente erstellt wird und bereit ist, bereitgestellt zu werden. Wenn Sie eine Komponente erstellen, lautet ihr Status
REQUESTED
. AWS IoT Greengrass Überprüft dann, ob die Komponente bereitgestellt werden kann. Sie können den folgenden Befehl ausführen, um den Status der Komponente abzufragen und zu überprüfen, ob Ihre Komponente bereitgestellt werden kann. Ersetzen Sie diearn
durch die ARN aus dem vorherigen Schritt.aws greengrassv2 describe-component --arn "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0"Wenn die Komponente validiert wird, gibt die Antwort an, dass der Status der Komponente lautet
DEPLOYABLE
.{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2020-11-30T18:04:05.823Z", "publisher": "Amazon", "description": "My first Greengrass component.", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "os": "linux", "architecture": "all" } ] }
Ihre Hello World-Komponente ist jetzt in AWS IoT Greengrass verfügbar. Sie können es wieder auf diesem Greengrass-Core-Gerät oder auf anderen Core-Geräten bereitstellen.