

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.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.

# Modul 6: Zugriff auf andere AWS Dienste
<a name="module6"></a>

Dieses Modul für Fortgeschrittene zeigt Ihnen, wie AWS IoT Greengrass Kerne mit anderen AWS Diensten in der Cloud interagieren können. Es baut auf dem Ampelbeispiel aus [Modul 5](module5.md) auf und fügt eine Lambda-Funktion hinzu, die Schattenzustände verarbeitet und eine Zusammenfassung in eine Amazon DynamoDB-Tabelle hochlädt.

![\[AWS IoT mit einem AWS IoT Greengrass Kern verbunden, der mit einem Lichtschaltergerät und einem Ampelgerät Shadow verbunden ist. Der Ampelgeräte-Shadow ist mit einer Lambda-Funktion verbunden, die mit einer DynamoDB-Tabelle verbunden ist.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-089.5.png)


Bevor Sie beginnen, führen Sie das [Greengrass Device Setup](quick-start.md)-Skript aus oder stellen Sie sicher, dass Sie [Modul 1](module1.md) und [Modul 2](module2.md) abgeschlossen haben. Sie sollten auch [Modul 5](module5.md)abschließen. Sie benötigen keine anderen Komponenten oder Geräte.

Dieses Modul sollte etwa 30 Minuten in Anspruch nehmen.

**Anmerkung**  
Dieses Modul erstellt und aktualisiert eine Tabelle in DynamoDB. Obwohl die meisten Operationen klein sind und unter das kostenlose Kontingent von Amazon Web Services fallen, kann die Ausführung einiger Schritte in diesem Modul dazu führen, dass Ihr Konto belastet wird. Informationen zur Preisgestaltung finden Sie in der [DynamoDB-Preisdokumentation](https://aws.amazon.com/dynamodb/pricing/).

**Topics**
+ [Konfigurieren der Gruppenrolle](config-iam-roles.md)
+ [Die Lambda-Funktion erstellen und konfigurieren](create-config-lambda.md)
+ [Konfigurieren von Abonnements](config_subs.md)
+ [Testen der Kommunikation](comms-test.md)

# Konfigurieren der Gruppenrolle
<a name="config-iam-roles"></a>

Die Gruppenrolle ist eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html), die Sie erstellen und Ihrer Greengrass-Gruppe zuordnen. Diese Rolle enthält die Berechtigungen, die bereitgestellte Lambda-Funktionen (und andere AWS IoT Greengrass Funktionen) für den Zugriff auf AWS Dienste verwenden. Weitere Informationen finden Sie unter [Greengrass-Gruppenrolle.](group-role.md).

Sie verwenden die folgenden allgemeinen Schritte, um eine Gruppenrolle in der IAM-Konsole zu erstellen.

1. Erstellen Sie eine Richtlinie, die Aktionen für eine oder mehrere Ressourcen zulässt oder verweigert.

1. Erstellen Sie eine Rolle, die den Greengrass-Service als vertrauenswürdige Entität verwendet.

1. Hängen Sie Ihre Richtlinie an die Rolle an.

Anschließend fügen Sie die Rolle in der AWS IoT Konsole der Greengrass-Gruppe hinzu.

**Anmerkung**  
Eine Greengrass-Gruppe verfügt über eine Gruppenrolle. Wenn Sie Berechtigungen hinzufügen möchten, können Sie angehängte Richtlinien bearbeiten oder weitere Richtlinien anhängen.

 

Für dieses Tutorial erstellen Sie eine Berechtigungsrichtlinie, die das Beschreiben, Erstellen und Aktualisieren von Aktionen in einer Amazon DynamoDB-Tabelle ermöglicht. Anschließend fügen Sie die Richtlinie an eine neue Rolle an und ordnen die Rolle Ihrer Greengrass-Gruppe zu.

Erstellen Sie zunächst eine vom Kunden verwaltete Richtlinie, die die für die Lambda-Funktion in diesem Modul erforderlichen Berechtigungen gewährt.

1. **Wählen Sie in der IAM-Konsole im Navigationsbereich **Richtlinien** und dann Richtlinie erstellen aus.**

1. Ersetzen Sie auf der Registerkarte **JSON** den Platzhalterinhalt durch die folgende Richtlinie. Die Lambda-Funktion in diesem Modul verwendet diese Berechtigungen, um eine DynamoDB-Tabelle mit dem Namen zu erstellen und zu aktualisieren. `CarStats`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PermissionsForModule6",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:DescribeTable",
                   "dynamodb:CreateTable",
                   "dynamodb:PutItem"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/CarStats"
           }
       ]
   }
   ```

------

1. Wählen Sie **Weiter: Tags** und danach **Weiter: Prüfen** aus. In diesem Tutorial werden keine Tags verwendet.

1. Geben Sie unter **Name** den Namen **greengrass\$1CarStats\$1Table** ein und wählen Sie dann **Create policy (Richtlinie erstellen)** aus.

    

   Erstellen Sie als Nächstes eine Rolle, die die neue Richtlinie verwendet.

1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

1. Wählen Sie unter **Typ der vertrauenswürdigen Entität** die Option **AWS -Service** aus.

1. **Wählen **Sie unter Anwendungsfall**, **Anwendungsfälle für andere AWS Dienste** die Option **Greengrass**, wählen Sie **Greengrass** und dann Weiter aus.**

1. **Wählen Sie unter **Berechtigungsrichtlinien** die neue **greengrass\$1CarStats\$1Table** Richtlinie aus und klicken Sie dann auf Weiter.**

1. Geben Sie für **Rollenname** den Namen **Greengrass\$1Group\$1Role** ein.

1. Geben Sie für **Beschreibung** den Text **Greengrass group role for connectors and user-defined Lambda functions** ein.

1. Wählen Sie **Rolle erstellen** aus.

   Fügen Sie die Rolle nun Ihrer Greengrass-Gruppe hinzu.

1. <a name="console-gg-groups"></a>Erweitern Sie im Navigationsbereich der AWS IoT Konsole unter **Verwalten** die Option **Greengrass-Geräte** und wählen Sie dann **Gruppen (V1)** aus.

1. Wählen Sie unter **Greengrass-Gruppen** Ihre Gruppe aus.

1. Wählen Sie **Einstellungen** und dann **Rolle als Mitarbeiter** aus.

1. Wählen Sie eine Rolle **Greengrass\$1Group\$1Role**aus Ihrer Rollenliste und wählen Sie dann **Associate-Rolle** aus.

# Die Lambda-Funktion erstellen und konfigurieren
<a name="create-config-lambda"></a>

In diesem Schritt erstellen Sie eine Lambda-Funktion, die die Anzahl der Autos verfolgt, die die Ampel passieren. Jedes Mal, wenn sich der `GG_TrafficLight` Schattenzustand ändert`G`, simuliert die Lambda-Funktion das Vorbeifahren einer zufälligen Anzahl von Autos (von 1 bis 20). Bei jeder dritten `G` Lichtänderung sendet die Lambda-Funktion grundlegende Statistiken wie Min und Max an eine DynamoDB-Tabelle.

1. Erstellen Sie auf Ihrem Computer den Ordner `car_aggregator`.

1. Laden Sie die Datei aus dem GitHub Ordner mit den [TrafficLight ](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)Beispielen in den `carAggregator.py` Ordner herunter. `car_aggregator` Dies ist Ihr Lambda-Funktionscode.
**Anmerkung**  
Diese Python-Beispieldatei wird der Einfachheit halber im AWS IoT Greengrass Core SDK-Repository gespeichert, verwendet jedoch nicht das AWS IoT Greengrass Core SDK.

1. Wenn Sie nicht in der Region USA Ost (Nord-Virginia) arbeiten, öffnen Sie die Region `carAggregator.py` und wechseln Sie `region_name` in der folgenden Zeile zu der AWS-Region , die aktuell in der AWS IoT Konsole ausgewählt ist. Eine Liste der unterstützten AWS-Region s finden Sie [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)in der *Allgemeine Amazon Web Services-Referenz*.

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. Führen Sie den folgenden Befehl in einem [Befehlszeilenfenster](https://en.wikipedia.org/wiki/Command-line_interface) aus, um das [AWS SDK für Python (Boto3)](https://github.com/boto/boto3/blob/develop/README.rst)Paket und seine Abhängigkeiten im `car_aggregator` Ordner zu installieren. Die Funktionen von Greengrass Lambda verwenden das AWS SDK, um auf andere AWS Dienste zuzugreifen. (Verwenden Sie unter Windows eine [Eingabeaufforderung mit erhöhten Rechten](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx)).

   ```
   pip install boto3 -t path-to-car_aggregator-folder
   ```

   Dadurch wird eine Verzeichnisliste ähnlich der folgenden angezeigt:  
![\[Bildschirmfoto der Verzeichnisliste mit carAggregator.py.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. Komprimieren Sie den Inhalt des Ordners `car_aggregator` in eine `.zip`-Datei namens `car_aggregator.zip`. (Komprimieren Sie den Inhalt des Ordners, nicht den Ordner.) Dies ist Ihr Lambda-Funktionsbereitstellungspaket.

1. Erstellen Sie in der Lambda-Konsole eine Funktion mit dem Namen **GG\$1Car\$1Aggregator** und legen Sie die verbleibenden Felder wie folgt fest:
   + Wählen Sie für **Runtime (Laufzeit)** die Option **Python 3.7** aus.
   + Behalten Sie für **Berechtigungen** die Standardeinstellung bei. Dadurch wird eine Ausführungsrolle erstellt, die grundlegende Lambda-Berechtigungen gewährt. Diese Rolle wird nicht verwendet von AWS IoT Greengrass.

   Wählen Sie **Funktion erstellen**.  
![\[Der Abschnitt „Grundlegende Informationen“ mit dem Feld „Funktionsname“ auf „GG_Car_Aggregator“ und „Laufzeitumgebung“ auf „Python 3.7“ gesetzt.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. Laden Sie das Bereitstellungspaket Ihrer Lambda-Funktion hoch:

   1. <a name="lambda-console-upload"></a>Wählen Sie auf der Registerkarte **Code** unter **Codequelle** die Option **Hochladen von aus**. Wählen Sie in der Dropdownliste die **ZIP-Datei** aus.  
![\[Das Drop-down-Menü „Von hochladen“, wobei die ZIP-Datei hervorgehoben ist.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. Wählen Sie Upload und anschließend Ihr `car_aggregator.zip` Bereitstellungspaket aus. Wählen Sie dann **Save (Speichern)** aus.

   1. <a name="lambda-console-runtime-settings-para"></a>Wählen Sie auf der Registerkarte **Code** für die Funktion unter **Laufzeiteinstellungen** die Option **Bearbeiten** aus, und geben Sie dann die folgenden Werte ein.
      + Wählen Sie für **Runtime (Laufzeit)** die Option **Python 3.7** aus.
      + Geben Sie unter **Handler** **carAggregator.function\$1handler** ein.

   1. Wählen Sie **Speichern**.

1. Veröffentlichen Sie die Lambda-Funktion und erstellen Sie dann einen Alias mit dem Namen**GG\$1CarAggregator**. step-by-stepAnweisungen finden Sie in den Schritten zum [Veröffentlichen der Lambda-Funktion](create-lambda.md#publish-function-version) und zum [Erstellen eines Alias](create-lambda.md#create-version-alias) in Modul 3 (Teil 1).

1. Fügen Sie in der AWS IoT Konsole die Lambda-Funktion, die Sie gerade erstellt haben, zu Ihrer AWS IoT Greengrass Gruppe hinzu:

   1. **Wählen Sie auf der Gruppenkonfigurationsseite **Lambda-Funktionen** und dann unter **Meine Lambda-Funktionen** die Option Hinzufügen aus.**

   1. Wählen Sie für die **Lambda-Funktion** **GG\$1Car\$1Aggregator**.

   1. Wählen Sie für die **Lambda-Funktionsversion** den Alias für die Version aus, die Sie veröffentlicht haben.

   1. Geben Sie in **Memory Limit (Speicherlimit)** **64 MB** ein.

   1. **Wählen Sie für **Pinned die** Option True aus.**

   1. Wählen Sie **Lambda-Funktion hinzufügen**.
**Anmerkung**  
Sie können andere Lambda-Funktionen aus früheren Modulen entfernen.

# Konfigurieren von Abonnements
<a name="config_subs"></a>

In diesem Schritt erstellen Sie ein Abonnement, das es dem GG\$1 TrafficLight Shadow ermöglicht, aktualisierte Statusinformationen an die Lambda-Funktion GG\$1Car\$1Aggregator zu senden. Das Abonnement wird den Abonnements hinzugefügt, die Sie in [Modul 5](module5.md) erstellt haben, und die alle für dieses Modul erforderlich sind.

1. **Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte **Abonnements** und dann Hinzufügen aus.**

1. Gehen Sie auf der Seite **Abonnement erstellen** wie folgt vor:

   1. Wählen Sie als **Quelltyp** die Option **Service** und dann **Local Shadow Service** aus.

   1. Wählen Sie als **Zieltyp** die Option **Lambda-Funktion** aus, und wählen Sie dann **GG\$1Car\$1Aggregator**.

   1. Geben Sie unter **Topic filter (Themenfilter)** **\$1aws/things/GG\$1TrafficLight/shadow/update/documents** ein.

   1. Wählen Sie **Create subscription** (Abonnement erstellen) aus.

   Dieses Modul erfordert das neue Abonnement sowie die [Abonnements](config-dev-subs.md#module5-subscriptions), die Sie in Modul 5 erstellt haben.

1. Vergewissern Sie sich, dass der Greengrass-Daemon läuft, wie unter beschrieben. [Bereitstellen von Cloud-Konfigurationen für ein Core-Gerät](configs-core.md)

1. <a name="console-actions-deploy"></a>**Wählen Sie auf der Seite mit der Gruppenkonfiguration die Option Deploy aus.**

# Testen der Kommunikation
<a name="comms-test"></a>

1. Öffnen Sie zwei [Befehlszeilenfenster](https://en.wikipedia.org/wiki/Command-line_interface) auf Ihrem Computer. Genau wie in [Modul 5](module5.md) ist ein Fenster für das GG\$1Switch-Client-Gerät und das andere für das TrafficLight GG\$1-Client-Gerät. Sie verwenden diese, um die gleichen Befehle wie in Modul 5 auszuführen.

   Führen Sie die folgenden Befehle für das GG\$1Switch-Client-Gerät aus:

   ```
   cd path-to-certs-folder
   python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
   ```

   Führen Sie die folgenden Befehle für das TrafficLight GG\$1-Client-Gerät aus:

   ```
   cd path-to-certs-folder
   python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight
   ```

   Alle 20 Sekunden aktualisiert der Schalter den Schattenzustand mit „G”, „Y” und „R” und die Lampe zeigt ihren neuen Zustand an.

1. Der Funktionshandler der Lambda-Funktion wird bei jeder dritten grünen Ampel (alle drei Minuten) ausgelöst, und ein neuer DynamoDB-Datensatz wird erstellt. Gehen `trafficLight.py` Sie nach `lightController.py` drei Minuten Laufzeit zur AWS-Managementkonsole DynamoDB-Konsole und öffnen Sie sie.

1. Wählen Sie **im Menü US East (Nord-Virginia)** aus AWS-Region . Dies ist die Region, in der die `GG_Car_Aggregator`-Funktion die Tabelle erstellt.

1. Wählen Sie im Navigationsbereich **Tabellen** und dann die **CarStats**Tabelle aus. 

1. Wählen Sie **Elemente anzeigen**, um die Einträge in der Tabelle anzuzeigen.

   Sie sollten die Einträge mit grundlegenden Statistikdaten zu den durchgefahrenen Fahrzeugen sehen (ein Eintrag alle drei Minuten). Möglicherweise müssen Sie die Schaltfläche zum Aktualisieren wählen, um die an der Tabelle vorgenommenen Aktualisierungen anzuzeigen.

1. Wenn der Test nicht erfolgreich ist, überprüfen Sie die Greengrass-Protokolle auf Informationen, die Sie bei der Fehlerbehebung unterstützen können.

   1. <a name="root-access-logs"></a>Wechseln Sie zum Root-Benutzer und navigieren Sie zum Verzeichnis `log`. Für den Zugriff auf AWS IoT Greengrass Protokolle sind Root-Rechte erforderlich.

      ```
      sudo su
      cd /greengrass/ggc/var/log
      ```

   1. Prüfen Sie `runtime.log` auf Fehler.

      ```
      cat system/runtime.log | grep 'ERROR'
      ```

   1. Überprüfen Sie das von der Lambda-Funktion generierte Protokoll.

      ```
      cat user/region/account-id/GG_Car_Aggregator.log
      ```

      <a name="check-connection-info"></a> Die Skripts `trafficLight.py` und `lightController.py` speichern Verbindungsinformationen im Ordner `groupCA`. Dieser wird im selben Ordner wie die Skripts erstellt. Wenn Sie Verbindungsfehler erhalten, stellen Sie sicher, dass die IP-Adresse in der `ggc-host` Datei mit dem IP-Adressendpunkt für Ihren Core übereinstimmt.

   Weitere Informationen finden Sie unter [Problembehebung AWS IoT Greengrass](gg-troubleshooting.md).

Dies ist das Ende des grundlegenden Tutorials. Sie sollten nun das AWS IoT Greengrass Programmiermodell und seine grundlegenden Konzepte verstehen, darunter AWS IoT Greengrass Kerne, Gruppen, Abonnements, Client-Geräte und den Bereitstellungsprozess für Lambda-Funktionen, die am Edge ausgeführt werden.

Sie können die DynamoDB-Tabelle und die Greengrass Lambda-Funktionen und -Abonnements löschen. Um die Kommunikation zwischen dem AWS IoT Greengrass Core-Gerät und der AWS IoT Cloud zu beenden, öffnen Sie ein Terminal auf dem Core-Gerät und führen Sie einen der folgenden Befehle aus:
+ Um das AWS IoT Greengrass Kerngerät herunterzufahren:

  ```
  sudo halt
  ```
+ Um den AWS IoT Greengrass Daemon zu stoppen:

  ```
  cd /greengrass/ggc/core/
  sudo ./greengrassd stop
  ```