我计划在AWS IoT Registry中生成新东西,一旦生成成功,就将东西arn,东西名称,证书信息写入AWS RDS数据库 .
这是否可以使用lambda capture IoT注册表事件并触发lambda写入数据库?
有什么建议吗?
AWS IoT通过其自己的MQTT代理发布了许多事件 .
在您的情况下,您对 $aws/events/thing/<thingName>/created 主题(https://docs.aws.amazon.com/iot/latest/developerguide/registry-events.html)感兴趣 .
$aws/events/thing/<thingName>/created
通过某些主题发送消息时,您可以使用AWS IoT Rule引擎自动执行操作(https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) .
这些动作可能是一个lambda(如果你有更多的逻辑,那么你也可以用它来解决这个问题,而无需编写你自己的自定义代码:
DynamoDb规则:https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#dynamodb-v2-rule
Lambda规则:https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#lambda-rule
所以在你的情况下,你可能会这样做:
{ "sql": "SELECT thingId thingName timestamp FROM '$aws/events/thing/+/created'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "dynamoDBv2": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDBv2", "putItem": { "tableName": "my_ddb_table" } } }] }
不幸的是,AWS似乎没有将证书信息发布到注册主题 . 我猜这是因为证书和设备之间没有一对一的关系 .
您可以通过收听 $aws/events/presence/connected/clientId 主题获取此信息;强制执行 clientId === thingId (通常是这种情况),并从消息中记录 principalIdentifier (https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html#connect-disconnect) . 您可以使用AWS IoT规则再次自动执行此操作 .
$aws/events/presence/connected/clientId
clientId === thingId
principalIdentifier
1 回答
AWS IoT通过其自己的MQTT代理发布了许多事件 .
在您的情况下,您对
$aws/events/thing/<thingName>/created
主题(https://docs.aws.amazon.com/iot/latest/developerguide/registry-events.html)感兴趣 .通过某些主题发送消息时,您可以使用AWS IoT Rule引擎自动执行操作(https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) .
这些动作可能是一个lambda(如果你有更多的逻辑,那么你也可以用它来解决这个问题,而无需编写你自己的自定义代码:
DynamoDb规则:https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#dynamodb-v2-rule
Lambda规则:https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#lambda-rule
所以在你的情况下,你可能会这样做:
不幸的是,AWS似乎没有将证书信息发布到注册主题 . 我猜这是因为证书和设备之间没有一对一的关系 .
您可以通过收听
$aws/events/presence/connected/clientId
主题获取此信息;强制执行clientId === thingId
(通常是这种情况),并从消息中记录principalIdentifier
(https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html#connect-disconnect) . 您可以使用AWS IoT规则再次自动执行此操作 .