Можем ли мы интегрировать AWS lambda с AWS IOT и выполнять операции в IOT с помощью этой лямбда-функции?
Сценарий такой
У меня есть микросервис, который вызывает функцию LAMBDA , роль которой будет заключаться в удалении вещей из AWS IOT.
Можно ли выполнять операции в AWS IOT с помощью лямбда-функции?
Любая статья, блог по этому поводу будет огромной помощью, так как я не могу найти какой-либо документ по интеграции в Интернете.
1 ответ
Я нашел способ выполнить несколько операций в AWS IOT, используя лямбда-функцию с помощью API.
В приведенной выше ссылке есть описание API, которое поможет в этом случае. Пример сценария лямбда-функции для удаления вещи из IOT:
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))
И вход для этой лямбда-функции будет
{
"thing_name": "MyIotThing"
}