预先预置挂钩 - AWS IoT
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

预先预置挂钩

使用 AWS IoT 队列预置时,您可以先设置 Lambda 函数来验证从设备传递的参数,然后再允许预置设备。在您预置设备之前,此 Lambda 函数必须存在于您的账户中,因为每次设备通过 RegisterThing 发送请求时都会调用该函数。对于要预置的设备,Lambda 函数必须接受输入对象并返回本节所述的输出对象。仅当 Lambda 函数返回带有 "allowProvisioning": True 的对象时,预置才会继续。

重要

AWS 建议在创建预置模板时使用预先预置挂钩,以便更好地控制将哪些设备以及多少设备的信息载入到您的账户中。

预先预置挂钩输入

在设备注册到 AWS IoT 时,AWS IoT 将此对象发送到 Lambda 函数。

{ "claimCertificateId" : "string", "certificateId" : "string", "certificatePem" : "string", "templateArn" : "arn:aws:iot:us-east-1:1234567890:provisioningtemplate/MyTemplate", "clientId" : "221a6d10-9c7f-42f1-9153-e52e6fc869c1", "parameters" : { "key" : "value", ... } }

传递给 Lambda 函数的 parameters 对象包含 parameters 参数中的属性,该参数在 RegisterThing 请求负载中传入。

预先预置挂钩返回值

Lambda 函数必须返回一个响应,指示它是否已授权预置请求以及要覆盖的任意属性的值。

以下是来自预先预置函数的成功响应示例。

{ "allowProvisioning": true, "parameterOverrides" : { "Key": "newCustomValue", ... } }

"parameterOverrides" 值将添加到 RegisterThing 响应负载的 "parameters" 参数中。

注意
  • 如果 Lambda 函数失败或未在响应中返回 "allowProvisioning" 参数,则预置请求将失败,并在响应中返回错误。

  • Lambda 函数必须在 5 秒内完成执行并返回,否则预置请求将失败。