首页 > 解决方案 > 无法访问流 arn:aws:dynamodb:us-east-2:144091332251:table/users/stream/2019-06-05T08:00:51.428

问题描述

我想在插入新记录dynamodb或更新现有记录后立即触发 lambda 函数。同样,我正在使用 awsdynamodb流功能。我试图这样做,但它使我陷入错误。

Cannot access stream arn:aws:dynamodb:us-east-2:144091332251:table/users/stream/2019-06-05T08:00:51.428. Please ensure the role can perform the GetRecords, GetShardIterator, DescribeStream, and ListStreams Actions on your stream in IAM. (Service: AWSLambda; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: c88c1297-438b-11e1-a338-e57e98788b7c)

标签: amazon-web-servicesamazon-dynamodbamazon-dynamodb-streams

解决方案


我认为您的 IAM 角色错过了访问流的必要策略。

如果您仍然遇到相同的错误,请按照进一步的步骤操作 -

  1. 打开您的 DynamoDB 流 lambda 正在使用的角色。您可以在底部的 Lambda 函数网页中找到。

在此处输入图像描述

  1. 在 IAM 控制台中打开此角色,然后单击Attach Policy

在此处输入图像描述

  1. 向其中添加以下策略-“AWSLambdaDynamoDBExecutionRole”

此策略具有您能够触发流 lambda 所需的权限。请参阅此政策附带的 JSON 文档 -

在此处输入图像描述

我希望,现在它应该可以工作了。

希望能帮助到你。


推荐阅读