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.
Pre-provisioning Hooks
AWS empfiehlt, bei der Erstellung von Bereitstellungsvorlagen Hook-Funktionen vor der Bereitstellung zu verwenden, um besser kontrollieren zu können, welche und wie viele Geräte in Ihrem Konto integriert sind. Pre-provisioning Hooks sind Lambda-Funktionen, die vom Gerät übergebene Parameter validieren, bevor das Gerät bereitgestellt werden kann. Diese Lambda-Funktion muss in Ihrem Konto vorhanden sein, bevor Sie ein Gerät bereitstellen, da sie jedes Mal aufgerufen wird, wenn ein Gerät eine Anfrage über RegisterThing sendet.
Wichtig
Achten Sie darauf, das source-arn oder source-account in die globalen Bedingungskontextschlüssel der Richtlinien aufzunehmen, die mit Ihrer Lambda-Aktion verknüpft sind, damit Berechtigungen nicht manipuliert werden können. Weitere Informationen hierzu finden Sie unter Cross-service verwirrter Stellvertreter, Prävention.
Damit Geräte bereitgestellt werden können, muss Ihre Lambda-Funktion das Eingabeobjekt akzeptieren und das in diesem Abschnitt beschriebene Ausgabeobjekt zurückgeben. Die Bereitstellung wird nur fortgesetzt, wenn die Lambda-Funktion ein Objekt mit "allowProvisioning": True zurückgibt.
Pre-provision Hook-Eingabe
AWS IoT sendet dieses Objekt an die Lambda-Funktion, wenn sich ein Gerät bei AWS IoT registriert.
{ "claimCertificateId" : "string", "certificateId" : "string", "certificatePem" : "string", "templateArn" : "arn:aws:iot:us-east-1:1234567890:provisioningtemplate/MyTemplate", "clientId" : "221a6d10-9c7f-42f1-9153-e52e6fc869c1", "parameters" : { "string" : "string", ... } }
Das an die Lambda-Funktion übergebene parameters-Objekt enthält die Eigenschaften im parameters-Argument, das in der RegisterThing-Anforderungsnutzlast übergeben wird.
Pre-provision Hook-Rückgabewert
Die Lambda-Funktion muss eine Antwort zurückgeben, die angibt, ob sie die Bereitstellungsanforderung und die Werte der zu überschreibenden Eigenschaften autorisiert hat.
Im Folgenden finden Sie ein Beispiel für eine erfolgreiche Antwort der Pre-Provisioning-Funktion.
{ "allowProvisioning": true, "parameterOverrides" : { "Key": "newCustomValue", ... } }
"parameterOverrides"-Werte werden dem Parameter "parameters" in der RegisterThing-Anforderungsnutzlast hinzugefügt.
Anmerkung
-
Wenn die Lambda-Funktion fehlschlägt, schlägt die Bereitstellungsanforderung fehl
ACCESS_DENIEDund ein Fehler wird in Logs protokolliert. CloudWatch -
Wenn die Lambda-Funktion in der Antwort nicht
"allowProvisioning": "true"zurückgibt, schlägt die Bereitstellungsanforderung mitACCESS_DENIEDfehl. -
Die Lambda-Funktion muss die Ausführung beenden und innerhalb von 5 Sekunden zurückgeben, andernfalls schlägt die Bereitstellungsanforderung fehl.