Как передать атрибуты SQS при срабатывании правила IOT? - PullRequest
0 голосов
/ 14 июля 2020

Basi c поток: Несколько клиентов отправляют данные в один AWS IOT topi c, который затем отправляет те же данные в SQS после аутентификации, и есть серверная служба, которая прослушивает SQS.

Для аутентификации я создал специальный авторизатор. Ниже приведен фиктивный ответ настраиваемого авторизатора.

{
    "isAuthenticated": true,
    "refreshAfterInSeconds": 600,
    "policyDocuments": [
        "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Action\":\"iot:Publish\",\"Effect\":\"Allow\",\"Resource\":\"arn:aws:iot:ap-south-1:test:topic/customauthtesting\"}]}"
    ],
    "disconnectAfterInSeconds": 3600,
    "principalId": "123",
    "context" ": {
         "userId" : "User1"    
    }
}

И я могу передать тело (включая временную метку) в SQS с помощью такого оператора запроса правила IOT SELECT *, timestamp() as timestamp FROM 'topic/test'

Теперь я хочу передать sh context.userId либо в качестве атрибута, либо в теле для SQS, когда срабатывает то же правило IOT, но я не могу этого сделать. В https://docs.aws.amazon.com/iot/latest/developerguide/custom-authorizer.html упоминается, что Информация, полученная после проверки токена, который становится доступным в AWS механизм правил IoT SQL операторы , поэтому я думаю, что это возможно. .

Кто-нибудь, пожалуйста, предоставьте мне пример или правильный синтаксис для передачи userId в запросе правила SQL, если это возможно. Дайте мне знать, если потребуется дополнительная информация.

...