Я использую AWS IoT Core.Я создал сертификат на стороне клиента для устройства после https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/. Все прошло нормально.Проблема в том, что теперь я хочу сохранить клиентские сертификаты_id и client_id в одной таблице, чтобы установить связь между ними, но я не могу получить сертификаты_id и client_id в одном лямбда-вызове.например:
- , когда устройство впервые подключается со своим клиентским сертификатом к серверу IoT, лямбда получает идентификатор_данных, но впоследствии не получает идентификатор_клиента
{
"client_id":"N/A",
"certificateId":"",
"caCertificateId":"",
"timestamp":"",
"certificateStatus":"PENDING_ACTIVATION",
"awsAccountId":"",
"certificateRegistrationTimestamp":""
}
- при публикации любой темы я могу получить client_id, но не получу сертификат_ID
Я пытался получить client_id по этому правилу, когда клиент впервые подключается к IoT.
SELECT clientId() as client_id , * FROM '$aws/events/certificates/registered/111111111111111'
В Lambda я печатаю событие:
{
client_id: 'N/A',
certificateId: '222222',
caCertificateId: '111111111111111',
timestamp: 3333,
certificateStatus: 'PENDING_ACTIVATION',
awsAccountId: '44444',
certificateRegistrationTimestamp: '55555'
}
здесь "1111 .." - это мой сертификат CA.
Я хочу получить сертификат_идентификатора, чтобы я мог активировать или деактивировать устройство, используя функцию boto3 iot
response = client.update_certificate(
certificateId='string',
newStatus='ACTIVE'|'INACTIVE'
)
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iot.html#IoT.Client.update_certificate