我在IoT Core中有一条规则,它将消息发送到IoT Analytics通道,然后将数据传递到Analytics管道,但是,在管道中,我想利用管道活动来转换消息,特别是:使用Lambda函数活动转换消息。
我的Lambda函数返回一个从DynamoDB中检索的值,我已经在AWS Lambda中测试了Lambda,它执行和工作正常,但是,一旦我点击更新预览,它现在应该向我显示转换后的消息,我就会收到以下错误:
我们无法运行管道活动。错误:由于权限不足,无法执行Lambda函数;丢弃消息,丢弃的消息数:1,函数arn:an:aws:lambda:eu-west-1:x:function:y
与Lambda y函数关联的IAM角色具有以下权限:
- AmazonDynamoDBFullAccess
- AWSIoTAnalyticsFullAccess
- AWSIoTFullAccess
是否有我在IAM角色中没有的Lambda政策阻止它做我需要做的事情?
似乎您没有提供lambda函数的权限,请确保您已授予IoT Analytics调用lambda函数的权限
示例AWS CLI命令:
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"