2

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

我的 Lambda 函数返回它从 DynamoDB 检索的值,我已经在 AWS Lambda 中测试了 Lambda,它按应有的方式执行和工作,但是,一旦我单击更新预览,现在应该向我显示转换后的消息,我收到以下错误:

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

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

  • AmazonDynamoDBFullAccess
  • AWSIoTAnalyticsFullAccess
  • AWSIoTFullAccess

是否有可能我在 IAM 角色中没有针对 Lambda 的策略阻止它执行我需要它执行的操作?

4

1 回答 1

2

好像您没有为您的 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"
于 2019-01-23T13:56:56.473 回答