View a markdown version of this page

Erstellen einer geheimen Ressource (Konsole) - AWS IoT Greengrass

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 werden Sie nicht mehr auf die Ressourcen zugreifen können. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter Migrieren von AWS IoT Greengrass Version 1.

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.

Erstellen einer geheimen Ressource (Konsole)

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Dieses Tutorial zeigt, wie Sie das verwenden AWS-Managementkonsole , um einer Greengrass-Gruppe eine geheime Ressource hinzuzufügen. Eine geheime Ressource ist ein Verweis auf ein geheimes Formular. AWS Secrets Manager Weitere Informationen finden Sie unter Bereitstellen von Geheimnissen für AWS IoT Greengrass core.

Auf dem AWS IoT Greengrass Kerngerät können Konnektoren und Lambda-Funktionen die geheime Ressource verwenden, um sich bei Diensten und Anwendungen zu authentifizieren, ohne Passwörter, Token oder andere Anmeldeinformationen fest codieren zu müssen.

In diesem Tutorial erstellen Sie zunächst ein Geheimnis in der Konsole. AWS Secrets Manager Dann fügen Sie in der AWS IoT Greengrass Konsole von der Ressourcenseite der Gruppe aus eine geheime Ressource zu einer Greengrass-Gruppe hinzu. Diese geheime Ressource verweist auf das Secrets Manager-Geheimnis. Später hängen Sie die geheime Ressource an eine Lambda-Funktion an, wodurch die Funktion den Wert des lokalen Geheimnisses abrufen kann.

Anmerkung

Alternativ können Sie mit der Konsole eine geheime und eine geheime Ressource erstellen, wenn Sie einen Connector oder eine Lambda-Funktion konfigurieren. Sie können dies auf der Seite „Parameter konfigurieren“ des Connectors oder auf der Seite „Ressourcen“ der Lambda-Funktion tun.

Nur Konnektoren, die Parameter für Secrets enthalten, können auf Secrets zugreifen. Ein Tutorial, das zeigt, wie der Twilio Notifications Connector ein lokal gespeichertes Authentifizierungstoken verwendet, finden Sie unter. Erste Schritte mit Greengrass-Konnektoren (Konsole)

Das Tutorial enthält die folgenden allgemeinen Schritte:

Für dieses Tutorial benötigen Sie ungefähr 20 Minuten.

Voraussetzungen

Zum Durchführen dieses Tutorials benötigen Sie Folgendes:

  • Eine Greengrass-Gruppe und ein Greengrass-Kern (v1.7 oder höher). Weitere Informationen zum Erstellen einer Greengrass-Gruppe und Greengrass Core finden Sie unter Erste Schritte mit AWS IoT Greengrass. Das Tutorial „Erste Schritte“ enthält auch Schritte zur Installation der AWS IoT Greengrass Core-Software.

  • AWS IoT Greengrass muss so konfiguriert sein, dass lokale Geheimnisse unterstützt werden. Weitere Informationen finden Sie unter Anforderungen für Secrets.

    Anmerkung

    Zu dieser Anforderung gehört auch, dass Sie auf Ihre Secrets Manager-Geheimnisse zugreifen können. Wenn Sie die standardmäßige Greengrass-Servicerolle verwenden, ist Greengrass berechtigt, die Werte von Secrets abzurufen, deren Namen mit greengrass- beginnen.

  • Um die Werte lokaler Geheimnisse abzurufen, müssen Ihre benutzerdefinierten Lambda-Funktionen das AWS IoT Greengrass Core SDK v1.3.0 oder höher verwenden.

Schritt 1: Erstellen Sie ein Secrets Manager-Geheimnis

In diesem Schritt verwenden Sie die AWS Secrets Manager Konsole, um ein Geheimnis zu erstellen.

  1. Melden Sie sich bei der AWS Secrets Manager -Konsole an.

    Anmerkung

    Weitere Informationen zu diesem Vorgang finden Sie im AWS Secrets ManagerAWS Secrets Manager Benutzerhandbuch unter Schritt 1: Erstellen und speichern Sie Ihr Geheimnis.

  2. Wählen Sie Store a new secret (Ein neues Secret speichern).

  3. Wählen Sie unter Geheimtyp auswählen die Option Anderer Geheimtyp aus.

  4. Unter Specify the key/value pairs to be stored for this secret (Angabe der Schlüssel/Wert-Paare, die für dieses Secret gespeichert werden sollen):

    • Geben Sie für Key (Schlüssel) test ein.

    • Geben Sie für Wert abcdefghi ein.

  5. Behalten Sie die aws/secretsmanager Auswahl für den Verschlüsselungsschlüssel bei und wählen Sie dann Weiter aus.

    Anmerkung

    Es wird Ihnen nichts berechnet, AWS KMS wenn Sie den standardmäßigen AWS verwalteten Schlüssel verwenden, den Secrets Manager in Ihrem Konto erstellt.

  6. Geben Sie für Secret name (Secret-Name) greengrass-TestSecret ein und klicken Sie auf Next (Weiter).

    Anmerkung

    Standardmäßig ermöglicht es AWS IoT Greengrass die Greengrass-Servicerolle, den Wert von Geheimnissen abzurufen, deren Namen mit greengrass- beginnen. Weitere Informationen finden Sie unter Anforderungen für Secrets.

  7. Für dieses Tutorial ist keine Rotation erforderlich. Wählen Sie daher „Automatische Rotation deaktivieren“ und dann „Weiter“.

  8. Prüfen Sie auf der Seite Review (Prüfen) Ihre Einstellungen und wählen Sie Store (Speichern).

    Als nächstes erstellen Sie in Ihrer Greengrass-Gruppe eine geheime Ressource, die auf das Secret verweist.

Schritt 2: Hinzufügen einer geheimen Ressource zu einer Greengrass-Gruppe

In diesem Schritt konfigurieren Sie eine Gruppenressource, die auf das Secrets Manager-Geheimnis verweist.

  1. Erweitern Sie im Navigationsbereich der AWS IoT Konsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Groups (V1) aus.

  2. Wählen Sie die Gruppe, zu der Sie die geheime Ressource hinzufügen möchten.

  3. Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Ressourcen und scrollen Sie dann nach unten zum Abschnitt Secrets. Im Abschnitt Geheimnisse werden die geheimen Ressourcen angezeigt, die zur Gruppe gehören. Sie können geheime Ressourcen zu diesem Abschnitt hinzufügen, bearbeiten und entfernen.

    Anmerkung

    Alternativ können Sie mit der Konsole eine geheime und eine geheime Ressource erstellen, wenn Sie einen Connector oder eine Lambda-Funktion konfigurieren. Sie können dies auf der Seite „Parameter konfigurieren“ des Connectors oder auf der Seite „Ressourcen“ der Lambda-Funktion tun.

  4. Wählen Sie im Abschnitt Secrets die Option Hinzufügen aus.

  5. Geben Sie auf der Seite Geheime Ressource hinzufügen MyTestSecret den Namen der Ressource ein.

  6. Wählen Sie unter Secret die Option greengrass- TestSecret aus.

  7. Im Abschnitt Select labels (optional) steht das AWSCURRENT-Staging-Label für die neueste Version des Secrets. Dieses Label ist immer in einer geheimen Ressource enthalten.

    Anmerkung

    Dieses Tutorial erfordert nur das Label AWSCURRENT. Sie können optional Labels hinzufügen, die für Ihre Lambda-Funktion oder Ihren Lambda-Connector erforderlich sind.

  8. Wählen Sie Add resource (Ressource hinzufügen) aus.

Schritt 3: Erstellen Sie ein Bereitstellungspaket für die Lambda-Funktion

Um eine Lambda-Funktion zu erstellen, müssen Sie zunächst ein Lambda-Funktionsbereitstellungspaket erstellen, das den Funktionscode und die Abhängigkeiten enthält. Greengrass-Lambda-Funktionen benötigen das AWS IoT Greengrass Core SDK für Aufgaben wie die Kommunikation mit MQTT-Nachrichten in der Kernumgebung und den Zugriff auf lokale Geheimnisse. Dieses Tutorial erstellt eine Python-Funktion, sodass Sie die Python-Version des SDK im Bereitstellungspaket verwenden.

Anmerkung

Um die Werte lokaler Geheimnisse abzurufen, müssen Ihre benutzerdefinierten Lambda-Funktionen das AWS IoT Greengrass Core SDK v1.3.0 oder höher verwenden.

  1. Laden Sie das AWS IoT Greengrass Core SDK für Python von der AWS IoT Greengrass Core-SDK-Downloadseite auf Ihren Computer herunter.

  2. Entpacken Sie das heruntergeladene Paket, um das SDK zu erhalten. Das SDK ist der greengrasssdk-Ordner.

  3. Speichern Sie die folgende Pythoncode-Funktion in einer lokalen Datei namens secret_test.py.

    import greengrasssdk secrets_client = greengrasssdk.client("secretsmanager") iot_client = greengrasssdk.client("iot-data") secret_name = "greengrass-TestSecret" send_topic = "secrets/output" def function_handler(event, context): """ Gets a secret and publishes a message to indicate whether the secret was successfully retrieved. """ response = secrets_client.get_secret_value(SecretId=secret_name) secret_value = response.get("SecretString") message = ( f"Failed to retrieve secret {secret_name}." if secret_value is None else f"Successfully retrieved secret {secret_name}." ) iot_client.publish(topic=send_topic, payload=message) print("Published: " + message)

    Die get_secret_value Funktion unterstützt den Namen oder ARN des Secrets Manager-Geheimnisses für den SecretId Wert. Dieses Beispiel verwendet den Namen des Secrets. Gibt für dieses Beispielgeheimnis das Schlüssel-Wert-Paar AWS IoT Greengrass zurück:. {"test":"abcdefghi"}

    Wichtig

    Stellen Sie sicher, dass Ihre benutzerdefinierten Lambda-Funktionen Geheimnisse sicher behandeln und keine vertraulichen Daten protokollieren, die in dem Geheimnis gespeichert sind. Weitere Informationen finden Sie im Benutzerhandbuch unter Minderung der Risiken beim Loggen und Debuggen Ihrer Lambda-Funktion. AWS Secrets Manager Obwohl sich diese Dokumentation speziell auf Rotationsfunktionen bezieht, gilt die Empfehlung auch für Greengrass Lambda-Funktionen.

  4. Packen Sie die folgenden Elemente in einer ZIP-Datei mit dem Namen secret_test_python.zip. Schließen Sie beim Erstellen einer ZIP-Datei nur den Code und die Abhängigkeiten ein, nicht den dazugehörigen Ordner.

    • secret_test.py. App-Logik.

    • greengrasssdk. Erforderliche Bibliothek für alle Python Greengrass Lambda-Funktionen.

    Dies ist Ihr Paket zur Bereitstellung der Lambda-Funktion.

Schritt 4: Erstellen einer Lambda-Funktion

In diesem Schritt verwenden Sie die AWS Lambda Konsole, um eine Lambda-Funktion zu erstellen und sie für die Verwendung Ihres Bereitstellungspakets zu konfigurieren. Anschließend veröffentlichen Sie eine Funktionsversion und erstellen einen Alias.

  1. Erstellen Sie zunächst die Lambda-Funktion.

    1. Wählen Sie in der die AWS-Managementkonsole Option Dienste aus und öffnen Sie die AWS Lambda Konsole.

    2. Wählen Sie „Funktion erstellen“ und wählen Sie dann „Von Grund auf neu erstellen“.

    3. Verwenden Sie im Abschnitt Basic information (Basisinformationen) folgende Werte:

      • Geben Sie für Function name (Funktionsname) SecretTest ein.

      • 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.

    4. Klicken Sie unten auf der Seite auf Create function.

  2. Registrieren Sie als Nächstes den Handler und laden Sie Ihr Lambda-Funktionsbereitstellungspaket hoch.

    1. Wählen Sie auf der Registerkarte Code unter Codequelle die Option Hochladen von aus. Wählen Sie in der Dropdownliste die Option „.zip-Datei“ aus.

      Das Drop-down-Menü „Hochladen von“ mit einer.zip-Datei ist hervorgehoben.
    2. Wählen Sie Hochladen und dann Ihr secret_test_python.zip Bereitstellungspaket aus. Wählen Sie dann Save (Speichern) aus.

    3. 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 secret_test.function_handler ein.

    4. Wählen Sie Speichern.

      Anmerkung

      Die Testschaltfläche auf der AWS Lambda Konsole funktioniert mit dieser Funktion nicht. Das AWS IoT Greengrass Core SDK enthält keine Module, die erforderlich sind, um Ihre Greengrass Lambda-Funktionen unabhängig in der AWS Lambda Konsole auszuführen. Diese Module (zum Beispielgreengrass_common) werden den Funktionen zur Verfügung gestellt, nachdem sie in Ihrem Greengrass-Kern bereitgestellt wurden.

  3. Veröffentlichen Sie jetzt die erste Version Ihrer Lambda-Funktion und erstellen Sie einen Alias für die Version.

    Anmerkung

    Greengrass-Gruppen können eine Lambda-Funktion nach Alias (empfohlen) oder nach Version referenzieren. Die Verwendung eines Alias erleichtert die Verwaltung von Code-Updates, da Sie Ihre Abonnementtabelle oder Gruppendefinition nicht ändern müssen, wenn der Funktionscode aktualisiert wird. Stattdessen verweisen Sie den Alias einfach auf die neue Funktionsversion.

    1. Wählen Sie im Menü Actions die Option Publish new version aus.

    2. Geben Sie unter Version description (Versionsbeschreibung) den Wert First version ein und wählen Sie dann Publish (Veröffentlichen) aus.

    3. Wählen Sie auf der Konfigurationsseite SecretTest: 1 im Menü Aktionen die Option Alias erstellen aus.

    4. Geben Sie auf der Seite Create a new alias folgende Werte an:

      • Geben Sie unter Name GG_SecretTest ein.

      • Wählen Sie für Version die Option 1.

      Anmerkung

      AWS IoT Greengrass unterstützt keine Lambda-Aliase für $LATEST-Versionen.

    5. Wählen Sie Erstellen aus.

Jetzt sind Sie bereit, die Lambda-Funktion zu Ihrer Greengrass-Gruppe hinzuzufügen und die geheime Ressource anzuhängen.

Schritt 5: Fügen Sie die Lambda-Funktion zur Greengrass-Gruppe hinzu

In diesem Schritt fügen Sie die Lambda-Funktion zur Greengrass-Gruppe in der Konsole hinzu. AWS IoT

  1. Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Lambda-Funktionen.

  2. Wählen Sie im Abschnitt Meine Lambda-Funktionen die Option Hinzufügen aus.

  3. Wählen Sie für die Lambda-Funktion. SecretTest

  4. Wählen Sie für die Version der Lambda-Funktion den Alias für die Version aus, die Sie veröffentlicht haben.

Als Nächstes konfigurieren Sie den Lebenszyklus der Lambda-Funktion.

  1. Nehmen Sie im Abschnitt Konfiguration der Lambda-Funktion die folgenden Aktualisierungen vor.

    Anmerkung

    Wir empfehlen, dass Sie Ihre Lambda-Funktion ohne Containerisierung ausführen, es sei denn, Ihr Geschäftsfall erfordert dies. Auf diese Weise können Sie auf die GPU und Kamera Ihres Geräts zugreifen, ohne die Geräteressourcen konfigurieren zu müssen. Wenn Sie ohne Containerisierung arbeiten, müssen Sie auch Root-Zugriff auf Ihre AWS IoT Greengrass Lambda-Funktionen gewähren.

    1. Um ohne Containerisierung zu laufen:

    2. Um stattdessen im containerisierten Modus zu arbeiten:

      Anmerkung

      Wir empfehlen nicht, im containerisierten Modus zu arbeiten, es sei denn, Ihr Geschäftsfall erfordert dies.

      • Wählen Sie für Systembenutzer und Gruppe die Option Gruppenstandard verwenden aus.

      • Wählen Sie für die Containerisierung von Lambda-Funktionen die Option Gruppenstandard verwenden aus.

      • Geben Sie in Memory Limit (Speicherlimit) 1024 MB ein.

      • Geben Sie in Timeout (Zeitüberschreitung) 10 seconds ein.

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

        Weitere Informationen finden Sie unter Lebenszykluskonfiguration für Greengrass Lambda-Funktionen.

      • Wählen Sie unter Zusätzliche Parameter für Lesezugriff auf das Verzeichnis /sys die Option Aktiviert aus.

  2. Wählen Sie Lambda-Funktion hinzufügen.

Ordnen Sie als Nächstes die geheime Ressource der Funktion zu.

Schritt 6: Hängen Sie die geheime Ressource an die Lambda-Funktion an

In diesem Schritt verknüpfen Sie die geheime Ressource mit der Lambda-Funktion in Ihrer Greengrass-Gruppe. Dadurch wird die Ressource mit der Funktion verknüpft, wodurch die Funktion den Wert des lokalen Geheimnisses abrufen kann.

  1. Wählen Sie auf der Seite mit der Gruppenkonfiguration die Registerkarte Lambda-Funktionen aus.

  2. Wählen Sie die SecretTest Funktion aus.

  3. Wählen Sie auf der Detailseite der Funktion Ressourcen aus.

  4. Scrollen Sie zum Abschnitt Secrets und wählen Sie Associate aus.

  5. Wählen Sie MyTestSecret und wählen Sie dann Associate aus.

Schritt 7: Hinzufügen von Abonnements zur Greengrass-Gruppe

In diesem Schritt fügen Sie Abonnements hinzu, die es der Lambda-Funktion ermöglichen AWS IoT , Nachrichten auszutauschen. Mit einem Abonnement kann AWS IoT die Funktion aufgerufen werden, und mit einem Abonnement kann die Funktion Ausgabedaten an diese senden. AWS IoT

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

  2. Erstellen Sie ein Abonnement, mit AWS IoT dem Sie Nachrichten für die Funktion veröffentlichen können.

    Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Abonnements und dann Abonnement hinzufügen aus.

  3. Konfigurieren Sie auf der Seite „Abonnement erstellen“ die Quelle und das Ziel wie folgt:

    1. Wählen Sie unter Quelltyp die Lambda-Funktion und dann IoT Cloud aus.

    2. Wählen Sie unter Zieltyp die Option Dienst aus, und wählen Sie SecretTest dann.

    3. Geben Sie im Themenfilter Folgendes einsecrets/input, und wählen Sie dann Abonnement erstellen aus.

  4. Hinzufügen eines zweiten Abonnements. Wählen Sie die Registerkarte Abonnements, wählen Sie Abonnement hinzufügen aus und konfigurieren Sie Quelle und Ziel wie folgt:

    1. Wählen Sie unter Quelltyp die Option Dienste aus , und wählen Sie dann SecretTest.

    2. Wählen Sie unter Zieltyp die Lambda-Funktion und dann IoT Cloud aus.

    3. Geben Sie im Themenfilter Folgendes ein secrets/output, und wählen Sie dann Abonnement erstellen aus.

Schritt 8: Bereitstellen der Greengrass-Gruppe

Stellen Sie die Gruppe auf dem Core-Gerät bereit. Ruft während der AWS IoT Greengrass Bereitstellung den Wert des Secrets aus Secrets Manager ab und erstellt eine lokale, verschlüsselte Kopie auf dem Core.

  1. Stellen Sie sicher, dass der AWS IoT Greengrass Core läuft. Führen Sie im Raspberry Pi-Terminal die folgenden Befehle aus, falls nötig.

    1. So prüfen Sie, ob der Daemon ausgeführt wird:

      ps aux | grep -E 'greengrass.*daemon'

      Wenn die Ausgabe einen root-Eintrag für /greengrass/ggc/packages/ggc-version/bin/daemon enthält, dann wird der Daemon ausgeführt.

      Anmerkung

      Die Version im Pfad hängt von der AWS IoT Greengrass Core-Softwareversion ab, die auf Ihrem Core-Gerät installiert ist.

    2. Um den Daemon zu starten:

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Wählen Sie auf der Seite mit der Gruppenkonfiguration die Option Deploy aus.

    1. Wählen Sie auf der Registerkarte Lambda-Funktionen im Abschnitt System Lambda-Funktionen die Option IP Detector aus und klicken Sie auf Bearbeiten.

    2. Wählen Sie im Dialogfeld IP-Detektoreinstellungen bearbeiten die Option MQTT-Broker-Endpunkte automatisch erkennen und überschreiben aus.

    3. Wählen Sie Speichern.

      Damit können Geräte automatisch Core-Verbindungsinformationen abrufen, z. B. die IP-Adresse, DNS und die Portnummer. Die automatische Erkennung wird empfohlen, unterstützt aber AWS IoT Greengrass auch manuell angegebene Endpunkte. Sie werden nur bei der ersten Bereitstellung der Gruppe zur Angabe der Ermittlungsmethode aufgefordert.

      Anmerkung

      Wenn Sie dazu aufgefordert werden, erteilen Sie die Erlaubnis, die Greengrass-Servicerolle zu erstellen und sie Ihrer AWS-Konto in der aktuellen Rolle zuzuordnen. AWS-Region Diese Rolle ermöglicht AWS IoT Greengrass den Zugriff auf Ihre Ressourcen in AWS Diensten.

      Auf der Seite Deployments werden der Zeitstempel, die Versions-ID und der Status der Bereitstellung angegeben. Wenn der Vorgang abgeschlossen ist, sollte der für die Bereitstellung angezeigte Status „Abgeschlossen“ lauten.

      Hilfe zur Problembehebung finden Sie unter Fehlerbehebung AWS IoT Greengrass.

Lambda-Funktion testen

  1. Wählen Sie auf der Startseite der AWS IoT Konsole Test aus.

  2. Verwenden Sie für Thema abonnieren die folgenden Werte und wählen Sie dann Abonnieren aus.

    Eigenschaft

    Wert

    Abonnementthema

    secrets/output

    MQTT-Nutzlast-Anzeige

    Zeigt Nutzlasten als Zeichenfolgen an

  3. Verwenden Sie für Im Thema veröffentlichen die folgenden Werte und wählen Sie dann Veröffentlichen, um die Funktion aufzurufen.

    Eigenschaft

    Wert

    Thema

    secrets/input

    Fehlermeldung

    Behalten der Standardnachricht. Beim Veröffentlichen einer Nachricht wird die Lambda-Funktion aufgerufen, aber die Funktion in diesem Tutorial verarbeitet den Nachrichtentext nicht.

    Im Erfolgsfall veröffentlicht die Funktion eine "Success"-Meldung.

Weitere Informationen finden Sie auch unter