AWS 将数据转换为 IoT Analytics 管道并出现 Lambda 函数权限错误

AWS transform data going into IoT Analytics pipeline with a Lambda function permission error

我在 IoT Core 中有一条规则,该规则将消息发送到 IoT Analytics 通道,然后将数据传递到 Analytics 管道,但是在管道中,我想利用管道 activity 来转换消息,特别是: 使用 Lambda 函数转换消息 activity.

我的 Lambda 函数 returns 它从 DynamoDB 检索的值,我已经在 AWS Lambda 中测试了 Lambda,它可以正常执行和工作,但是,一旦我单击更新预览,它现在应该会显示给我转换后的消息出现以下错误:

我们无法 运行 管道 activity。错误:由于权限不足,无法执行 Lambda 函数;丢弃消息,丢弃的消息数:1,functionArn:arn:aws:lambda:eu-west-1:x:function:y

与 Lambda y 函数关联的 IAM 角色具有以下权限:

在我的 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"