我们可以将 AWS lambda 与 AWS IOT 集成并使用此 lambda 函数在 IOT 中执行操作吗?
Can we Integrate AWS lambda with AWS IOT and perform operations in the IOT using this lambda function?
场景是这样的
我有一个调用 LAMBDA 函数的微服务,其作用是从 AWS IOT.[=10= 中删除内容]
有没有一种方法可以使用 lambda 函数在 AWS IOT 中执行操作?
与此相关的任何文章、博客都将提供巨大的帮助,因为我无法在网络上找到任何集成文档。
我找到了一种通过 API 的方式使用 lambda 函数在 AWS IOT 中执行多项操作的方法。
上面的 link 有关于 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"
}
场景是这样的
我有一个调用 LAMBDA 函数的微服务,其作用是从 AWS IOT.[=10= 中删除内容]
有没有一种方法可以使用 lambda 函数在 AWS IOT 中执行操作?
与此相关的任何文章、博客都将提供巨大的帮助,因为我无法在网络上找到任何集成文档。
我找到了一种通过 API 的方式使用 lambda 函数在 AWS IOT 中执行多项操作的方法。
上面的 link 有关于 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"
}