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.
Interagieren mit der Komponentenkonfiguration
Mit dem Komponentenkonfigurations-IPK-Service können Sie Folgendes tun:
-
Abrufen und Festlegen von Komponentenkonfigurationsparametern.
-
Abonnieren Sie Aktualisierungen der Komponentenkonfiguration.
-
Validieren Sie Aktualisierungen der Komponentenkonfiguration, bevor der Kern sie anwendet.
Themen
SDK-Mindestversionen
In der folgenden Tabelle sind die Mindestversionen von aufgeführtAWS IoT Device SDK, die Sie für die Interaktion mit der Komponentenkonfiguration verwenden müssen.
SDK | Mindestversion |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
GetConfiguration
Ruft einen Konfigurationswert für eine Komponente auf dem Core-Gerät ab. Sie geben den Schlüsselpfad an, für den ein Konfigurationswert abgerufen werden soll.
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
componentName
(Python:component_name
)-
(Optional) Der Name der Komponente.
Standardmäßig ist der Name der Komponente, die die Anforderung stellt.
keyPath
(Python:key_path
)-
Der Schlüsselpfad zum Konfigurationswert. Geben Sie eine Liste an, in der jeder Eintrag der Schlüssel für eine einzelne Ebene im Konfigurationsobjekt ist. Geben Sie beispielsweise an,
["mqtt", "port"]
um den Wert vonport
in der folgenden Konfiguration abzurufen.{ "mqtt": { "port": 443 } }
Um die vollständige Konfiguration der Komponente abzurufen, geben Sie eine leere Liste an.
Antwort
Die Antwort dieser Operation enthält die folgenden Informationen:
componentName
(Python:component_name
)-
Der Name der Komponente.
value
-
Die angeforderte Konfiguration als Objekt.
UpdateConfiguration
Aktualisiert einen Konfigurationswert für diese Komponente auf dem Core-Gerät.
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
keyPath
(Python:key_path
)-
(Optional) Der Schlüsselpfad zum zu aktualisierenden Container-Knoten (das Objekt). Geben Sie eine Liste an, in der jeder Eintrag der Schlüssel für eine einzelne Ebene im Konfigurationsobjekt ist. Geben Sie beispielsweise den Schlüsselpfad
["mqtt"]
und den Zusammenführungswert an,{ "port": 443 }
um den Wert vonport
in der folgenden Konfiguration festzulegen.{ "mqtt": { "port": 443 } }
Der Schlüsselpfad muss einen Containerknoten (ein Objekt) in der Konfiguration angeben. Wenn der Knoten in der Konfiguration der Komponente nicht vorhanden ist, wird er von dieser Operation erstellt und auf den Wert für das Objekt in festgelegt
valueToMerge
.Standardmäßig ist das Stammverzeichnis des Konfigurationsobjekts.
timestamp
-
Die aktuelle Unix-Epochenzeit in Millisekunden. Dieser Vorgang verwendet diesen Zeitstempel, um gleichzeitige Aktualisierungen des Schlüssels aufzulösen. Wenn der Schlüssel in der Komponentenkonfiguration einen größeren Zeitstempel als der Zeitstempel in der Anforderung hat, schlägt die Anforderung fehl.
valueToMerge
(Python:value_to_merge
)-
Das Konfigurationsobjekt, das an dem Speicherort zusammengeführt werden soll, den Sie in angeben
keyPath
. Weitere Informationen finden Sie unter Aktualisieren von Komponentenkonfigurationen.
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.
SubscribeToConfigurationUpdate
Abonnieren Sie , um Benachrichtigungen zu erhalten, wenn die Konfiguration einer Komponente aktualisiert wird. Wenn Sie einen Schlüssel abonnieren, erhalten Sie eine Benachrichtigung, wenn ein untergeordnetes Element dieses Schlüssels aktualisiert wird.
Bei diesem Vorgang handelt es sich um einen Abonnementvorgang, bei dem Sie einen Stream von Ereignisnachrichten abonnieren. Um diesen Vorgang zu verwenden, definieren Sie einen Stream-Antwort-Handler mit Funktionen, die Ereignismeldungen, Fehler und Stream-Schließung verarbeiten. Weitere Informationen finden Sie unter Abonnieren von IPC-Ereignisstreams.
Typ der Ereignisnachricht: ConfigurationUpdateEvents
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
componentName
(Python:component_name
)-
(Optional) Der Name der Komponente.
Standardmäßig ist der Name der Komponente, die die Anforderung stellt.
keyPath
(Python:key_path
)-
Der Schlüsselpfad zum Konfigurationswert, den Sie abonnieren möchten. Geben Sie eine Liste an, in der jeder Eintrag der Schlüssel für eine einzelne Ebene im Konfigurationsobjekt ist. Geben Sie beispielsweise an,
["mqtt", "port"]
um den Wert vonport
in der folgenden Konfiguration abzurufen.{ "mqtt": { "port": 443 } }
Um Updates für alle Werte in der Konfiguration der Komponente zu abonnieren, geben Sie eine leere Liste an.
Antwort
Die Antwort dieser Operation enthält die folgenden Informationen:
messages
-
Der Stream von Benachrichtigungen. Dieses Objekt,
ConfigurationUpdateEvents
, enthält die folgenden Informationen:configurationUpdateEvent
(Python:configuration_update_event
)-
Das Konfigurationsaktualisierungsereignis. Dieses Objekt,
ConfigurationUpdateEvent
, enthält die folgenden Informationen:componentName
(Python:component_name
)-
Der Name der Komponente.
keyPath
(Python:key_path
)-
Der Schlüsselpfad zum Konfigurationswert, den aktualisiert hat.
SubscribeToValidateConfigurationUpdates
Abonnieren Sie , um Benachrichtigungen zu erhalten, bevor die Konfigurationsaktualisierungen dieser Komponente aktualisiert werden. Auf diese Weise können Komponenten Aktualisierungen an ihrer eigenen Konfiguration validieren. Verwenden Sie die -SendConfigurationValidityReportOperation, um dem Kern mitzuteilen, ob die Konfiguration gültig ist oder nicht.
Wichtig
Lokale Bereitstellungen benachrichtigen Komponenten nicht über Updates.
Bei diesem Vorgang handelt es sich um einen Abonnementvorgang, bei dem Sie einen Stream von Ereignisnachrichten abonnieren. Um diesen Vorgang zu verwenden, definieren Sie einen Stream-Antwort-Handler mit Funktionen, die Ereignismeldungen, Fehler und Stream-Schließung verarbeiten. Weitere Informationen finden Sie unter Abonnieren von IPC-Ereignisstreams.
Typ der Ereignisnachricht: ValidateConfigurationUpdateEvents
Anforderung
Die Anforderung dieser Operation hat keine Parameter.
Antwort
Die Antwort dieser Operation enthält die folgenden Informationen:
messages
-
Der Stream von Benachrichtigungen. Dieses Objekt,
ValidateConfigurationUpdateEvents
, enthält die folgenden Informationen:validateConfigurationUpdateEvent
(Python:validate_configuration_update_event
)-
Das Konfigurationsaktualisierungsereignis. Dieses Objekt,
ValidateConfigurationUpdateEvent
, enthält die folgenden Informationen:deploymentId
(Python:deployment_id
)-
Die ID der AWS IoT Greengrass Bereitstellung, die die Komponente aktualisiert.
configuration
-
Das Objekt, das die neue Konfiguration enthält.
SendConfigurationValidityReport
Teilen Sie dem Kern mit, ob eine Konfigurationsaktualisierung für diese Komponente gültig ist oder nicht. Die Bereitstellung schlägt fehl, wenn Sie dem Kern mitteilen, dass die neue Konfiguration ungültig ist. Verwenden Sie die -SubscribeToValidateConfigurationUpdatesOperation, um Konfigurationsaktualisierungen zu validieren.
Wenn eine Komponente nicht auf eine Benachrichtigung zur Konfigurationsaktualisierung antwortet, wartet der Kern die Zeit, die Sie in der Konfigurationsvalidierungsrichtlinie der Bereitstellung angeben. Nach diesem Timeout fährt der Kern mit der Bereitstellung fort. Das Standardzeitlimit für die Komponentenvalidierung beträgt 20 Sekunden. Weitere Informationen finden Sie unter Erstellen von Bereitstellungen und das -DeploymentConfigurationValidationPolicyObjekt, das Sie beim Aufrufen der -CreateDeploymentOperation angeben können.
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
configurationValidityReport
(Python:configuration_validity_report
)-
Der Bericht, der dem Kern mitteilt, ob die Konfigurationsaktualisierung gültig ist oder nicht. Dieses Objekt,
ConfigurationValidityReport
, enthält die folgenden Informationen:status
-
Der Gültigkeitsstatus. Diese Aufzählung,
ConfigurationValidityStatus
, hat die folgenden Werte:-
ACCEPTED
– Die Konfiguration ist gültig und der Kern kann sie auf diese Komponente anwenden. -
REJECTED
– Die Konfiguration ist ungültig und die Bereitstellung schlägt fehl.
-
deploymentId
(Python:deployment_id
)-
Die ID der AWS IoT Greengrass Bereitstellung, die das Konfigurationsupdate angefordert hat.
message
-
(Optional) Eine Meldung, die meldet, warum die Konfiguration ungültig ist.
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.