Как я могу получить сертификаты_id и client_id в AWS IoT Lambda? - PullRequest
0 голосов
/ 30 января 2019

Я использую 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

1 Ответ

0 голосов
/ 30 января 2019

Вы можете подписаться на подключение событий по теме $ aws / events / присутствии / connected / +

Это позволит вам соотнести идентификатор клиента с основным идентификатором (сертификатом).

См.https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html

...