Преобразование данных AWS, поступающих в конвейер IoT Analytics, с ошибкой разрешения функции Lambda - PullRequest
0 голосов
/ 23 января 2019

У меня есть правило в IoT Core, которое отправляет сообщения в канал IoT Analytics, а затем эти данные передаются в конвейер Analytics, однако в конвейере я хочу использовать конвейерную деятельность для преобразования сообщения, в частности, : Преобразование сообщения с функцией лямбда активность.

Моя лямбда-функция возвращает значение, полученное из DynamoDB, я проверил лямбду в AWS Lambda, и она работает и работает как надо, однако, как только я нажму кнопку «Обновить предварительный просмотр», которая теперь должна показать мне преобразованное сообщение, я получаю следующая ошибка:

Мы не смогли запустить работу конвейера. ОШИБКА: невозможно выполнить лямбда-функцию из-за недостаточных разрешений; отбрасывание сообщений, количество отброшенных сообщений: 1, functionArn: arn: aws: lambda: eu-west-1: x: function: y

Роль IAM, связанная с функцией Lambda y, имеет следующие разрешения:

  • AmazonDynamoDBFullAccess
  • AWSIoTAnalyticsFullAccess
  • AWSIoTFullAccess

Может быть, есть политика, которой у меня нет в моей роли IAM для лямбды, которая мешает ей делать то, что мне нужно?

1 Ответ

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

Похоже, что вы не предоставили разрешение для своей лямбда-функции, убедитесь, что вы предоставили разрешение IoT Analytics для вызова вашей лямбда-функции

Пример команды CLI AWS:

1)

aws lambda add-permission --function-name filter_to_cloudwatch --statement-id filter_to_cloudwatch_perms --principal iotanalytics.amazonaws.com --action lambda:InvokeFunction

2)

aws lambda add-permission --function-name LambdaForWeatherCorp --region us-east-1 --principal iot.amazonaws.com --source-arn arn:aws:iot:us-east-1:123456789012:rule/WeatherCorpRule --source-account 123456789012 --statement-id "unique_id" --action "lambda:InvokeFunction"
...