Enlaces de preaprovisionamiento
AWS recomienda utilizar funciones de enlaces de preaprovisionamiento al crear plantillas de aprovisionamiento para permitir un mayor control de qué dispositivos y cuántos dispositivos tiene incorporados su cuenta. Los enlaces de preaprovisionamiento son funciones de Lambda que validan los parámetros transferidos desde el dispositivo antes de permitir que se aprovisione el dispositivo. Esta función de Lambda debe existir en su cuenta antes de aprovisionar un dispositivo porque se llama cada vez que un dispositivo envía una solicitud a través de RegisterThing.
importante
Asegúrese de incluir las claves contextuales de condición global source-arn
o source-account
en las de las políticas adjuntas a su acción de Lambda para evitar la manipulación de permisos. Para obtener más información acerca de este tema, consulte Prevención de la sustitución confusa entre servicios.
Para que los dispositivos se aprovisionen, la función de Lambda debe aceptar el objeto de entrada y devolver el objeto de salida descrito en esta sección. El aprovisionamiento continúa solo si la función de Lambda devuelve un objeto con "allowProvisioning": True
.
Preaprovisionamiento de entrada de enlace
AWS IoT envía este objeto a la función de Lambda cuando un dispositivo se registra con 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
", ... } }
El objeto parameters
pasado a la función de Lambda contiene las propiedades en el argumento parameters
pasado en la carga de solicitud RegisterThing.
Valor de retorno del enlace previo a la provisión
La función de Lambda debe devolver una respuesta que indique si ha autorizado la solicitud de aprovisionamiento y los valores de las propiedades para anular.
A continuación se muestra un ejemplo de una respuesta exitosa de la función de preaprovisionamiento.
{ "allowProvisioning": true, "parameterOverrides" : { "Key": "newCustomValue", ... } }
Se agregarán valores "parameterOverrides"
al parámetro "parameters"
en la carga de solicitud de RegisterThing.
nota
-
Si se produce un error en la función de Lambda, se produce un error en la solicitud de aprovisionamiento con
ACCESS_DENIED
y se registra un error en Registros de CloudWatch. -
Si la función de Lambda no devuelve
"allowProvisioning": "true"
en la respuesta, se produce un errorACCESS_DENIED
en la solicitud de aprovisionamiento. -
La función de Lambda debe terminar de ejecutarse y volver en 5 segundos; de lo contrario, la solicitud de aprovisionamiento falla.