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.
-
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.
-
Wählen Sie Store a new secret (Ein neues Secret speichern).
-
Wählen Sie unter Geheimtyp auswählen die Option Anderer Geheimtyp aus.
-
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)
testein. -
Geben Sie für Wert
abcdefghiein.
-
-
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.
-
Geben Sie für Secret name (Secret-Name)
greengrass-TestSecretein 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.
-
Für dieses Tutorial ist keine Rotation erforderlich. Wählen Sie daher „Automatische Rotation deaktivieren“ und dann „Weiter“.
-
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.
Erweitern Sie im Navigationsbereich der AWS IoT Konsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Groups (V1) aus.
-
Wählen Sie die Gruppe, zu der Sie die geheime Ressource hinzufügen möchten.
-
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.
-
Wählen Sie im Abschnitt Secrets die Option Hinzufügen aus.
-
Geben Sie auf der Seite Geheime Ressource hinzufügen
MyTestSecretden Namen der Ressource ein. -
Wählen Sie unter Secret die Option greengrass- TestSecret aus.
-
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.
-
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.
-
Laden Sie das AWS IoT Greengrass Core SDK für Python von der AWS IoT Greengrass Core-SDK-Downloadseite auf Ihren Computer herunter.
-
Entpacken Sie das heruntergeladene Paket, um das SDK zu erhalten. Das SDK ist der
greengrasssdk-Ordner. -
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_valueFunktion unterstützt den Namen oder ARN des Secrets Manager-Geheimnisses für denSecretIdWert. 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.
-
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.
-
Erstellen Sie zunächst die Lambda-Funktion.
-
Wählen Sie in der die AWS-Managementkonsole Option Dienste aus und öffnen Sie die AWS Lambda Konsole.
-
Wählen Sie „Funktion erstellen“ und wählen Sie dann „Von Grund auf neu erstellen“.
-
Verwenden Sie im Abschnitt Basic information (Basisinformationen) folgende Werte:
-
Geben Sie für Function name (Funktionsname)
SecretTestein. -
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.
-
-
Klicken Sie unten auf der Seite auf Create function.
-
-
Registrieren Sie als Nächstes den Handler und laden Sie Ihr Lambda-Funktionsbereitstellungspaket hoch.
-
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.
-
Wählen Sie Hochladen und dann Ihr
secret_test_python.zipBereitstellungspaket aus. Wählen Sie dann Save (Speichern) aus. -
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_handlerein.
-
-
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 Beispiel
greengrass_common) werden den Funktionen zur Verfügung gestellt, nachdem sie in Ihrem Greengrass-Kern bereitgestellt wurden.
-
-
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.
-
Wählen Sie auf der Konfigurationsseite SecretTest: 1 im Menü Aktionen die Option Alias erstellen aus.
-
Geben Sie auf der Seite Create a new alias folgende Werte an:
-
Geben Sie unter Name
GG_SecretTestein. -
Wählen Sie für Version die Option 1.
Anmerkung
AWS IoT Greengrass unterstützt keine Lambda-Aliase für $LATEST-Versionen.
-
-
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
-
Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Lambda-Funktionen.
-
Wählen Sie im Abschnitt Meine Lambda-Funktionen die Option Hinzufügen aus.
-
Wählen Sie für die Lambda-Funktion. SecretTest
-
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.
-
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.
-
Um ohne Containerisierung zu laufen:
-
Wählen Sie für Systembenutzer und -gruppe.
Another user ID/group IDGeben Sie für Systembenutzer-ID den Wert ein0. Geben Sie für Systemgruppen-ID den Wert ein0.Dadurch kann Ihre Lambda-Funktion als Root ausgeführt werden. Weitere Hinweise zur Ausführung als Root finden Sie unterEinstellung der Standardzugriffsidentität für Lambda-Funktionen in einer Gruppe.
Tipp
Sie müssen auch Ihre
config.jsonDatei aktualisieren, um Root-Zugriff auf Ihre Lambda-Funktion zu gewähren. Das Verfahren finden Sie unterEine Lambda-Funktion als Root ausführen. -
Wählen Sie für die Containerisierung der Lambda-Funktion die Option Kein Container aus.
Weitere Hinweise zur Ausführung ohne Containerisierung finden Sie unter. Überlegungen bei der Wahl der Containerisierung von Lambda-Funktionen
-
Geben Sie in Timeout (Zeitüberschreitung)
10 secondsein. -
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ätzlicher Parameter für Lesezugriff auf das Verzeichnis /sys die Option Aktiviert aus.
-
-
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 MBein. -
Geben Sie in Timeout (Zeitüberschreitung)
10 secondsein. -
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.
-
-
-
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.
-
Wählen Sie auf der Seite mit der Gruppenkonfiguration die Registerkarte Lambda-Funktionen aus.
-
Wählen Sie die SecretTest Funktion aus.
-
Wählen Sie auf der Detailseite der Funktion Ressourcen aus.
-
Scrollen Sie zum Abschnitt Secrets und wählen Sie Associate aus.
-
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
-
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.
-
Konfigurieren Sie auf der Seite „Abonnement erstellen“ die Quelle und das Ziel wie folgt:
-
Wählen Sie unter Quelltyp die Lambda-Funktion und dann IoT Cloud aus.
-
Wählen Sie unter Zieltyp die Option Dienst aus, und wählen Sie SecretTest dann.
-
Geben Sie im Themenfilter Folgendes ein
secrets/input, und wählen Sie dann Abonnement erstellen aus.
-
-
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:
-
Wählen Sie unter Quelltyp die Option Dienste aus , und wählen Sie dann SecretTest.
-
Wählen Sie unter Zieltyp die Lambda-Funktion und dann IoT Cloud aus.
-
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.
Lambda-Funktion testen
-
Wählen Sie auf der Startseite der AWS IoT Konsole Test aus.
-
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
-
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.