Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Hooks de mise en service en amont
AWS recommande d'utiliser des fonctions de pré-approvisionnement lors de la création de modèles de provisionnement afin de mieux contrôler quels appareils et combien d'appareils sont intégrés à votre compte. Les hooks de mise en service en amont sont des fonctions Lambda qui valident les paramètres transmis par l’appareil avant d’autoriser la mise en service de l’appareil. Cette fonction Lambda doit exister dans votre compte avant la mise en service d’un appareil, car elle est appelée chaque fois qu’un appareil envoie une demande via RegisterThing.
Important
Assurez-vous d’inclure le source-arn
ou source-account
dans les clés de contexte de condition globale des politiques associées à votre action Lambda afin d’empêcher toute manipulation des autorisations. Pour de plus amples informations à ce sujet, veuillez consulter Prévention du cas de figure de l’adjoint désorienté entre services.
Pour que les appareils soient provisionnés, votre fonction Lambda doit accepter l’objet d’entrée et renvoyer l’objet de sortie décrit dans cette section. La mise en service ne se déroule que si la fonction Lambda renvoie un objet avec la valeur "allowProvisioning": True
.
Entrée du hook de pré-provisionnement
AWS IoT envoie cet objet à la fonction Lambda lorsqu'un appareil s'enregistre auprès de. AWS IoT
{ "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
", ... } }
L’objet parameters
transmis à la fonction Lambda contient les propriétés de l’argument parameters
passé dans la charge utile de la demande RegisterThing.
Valeur de retour du hook de pré-provisionnement
La fonction Lambda doit renvoyer une réponse indiquant si elle a autorisé la demande de mise en service et les valeurs de toutes les propriétés à remplacer.
Voici un exemple de réponse réussie de la fonction de pré-provisionnement.
{ "allowProvisioning": true, "parameterOverrides" : { "Key": "newCustomValue", ... } }
Les valeurs "parameterOverrides"
seront ajoutées au paramètre "parameters"
dans la charge utile de la demande RegisterThing.
Note
-
Si la fonction Lambda échoue, la demande de provisionnement échoue
ACCESS_DENIED
et une erreur est enregistrée dans Logs. CloudWatch -
Si la fonction Lambda ne renvoie pas
"allowProvisioning": "true"
dans la réponse, la demande de mise en service échoue avecACCESS_DENIED
. -
La fonction Lambda doit procéder à l’exécution et renvoyer dans un délai de 5 secondes, sinon la demande de mise en service échoue.