场景是这样的
我有一个微服务,它调用一个LAMBDA函数,其作用是从AWS IOT中删除东西。
有没有办法可以使用 lambda 函数在 AWS IOT 中执行操作?
任何关于此的文章、博客都会有很大的帮助,因为我无法在网络上找到任何集成文档。
场景是这样的
我有一个微服务,它调用一个LAMBDA函数,其作用是从AWS IOT中删除东西。
有没有办法可以使用 lambda 函数在 AWS IOT 中执行操作?
任何关于此的文章、博客都会有很大的帮助,因为我无法在网络上找到任何集成文档。
我找到了一种通过 API 使用 lambda 函数在 AWS IOT 中执行多项操作的方法。
上面的链接有关于 API 的描述,这将在这种情况下有所帮助。从 IOT 中删除事物的示例 lambda 函数脚本是
import json
import boto3
def lambda_handler(event, context):
thing_name = event['thing_name']
delete_thing(thing_name=thing_name)
def delete_thing(thing_name):
c_iot = boto3.client('iot')
print(" DELETING {}".format(thing_name))
try:
r_principals = c_iot.list_thing_principals(thingName=thing_name)
except Exception as e:
print("ERROR listing thing principals: {}".format(e))
r_principals = {'principals': []}
print("r_principals: {}".format(r_principals))
for arn in r_principals['principals']:
cert_id = arn.split('/')[1]
print(" arn: {} cert_id: {}".format(arn, cert_id))
r_detach_thing = c_iot.detach_thing_principal(thingName=thing_name, principal=arn)
print("DETACH THING: {}".format(r_detach_thing))
r_upd_cert = c_iot.update_certificate(certificateId=cert_id, newStatus='INACTIVE')
print("INACTIVE: {}".format(r_upd_cert))
r_del_cert = c_iot.delete_certificate(certificateId=cert_id, forceDelete=True)
print(" DEL CERT: {}".format(r_del_cert))
r_del_thing = c_iot.delete_thing(thingName=thing_name)
print(" DELETE THING: {}\n".format(r_del_thing))
这个 lambda 函数的输入将是
{
"thing_name": "MyIotThing"
}