繁体   English   中英

Aws lambda 未与 Dynamo Db 连接

[英]Aws lambda not connecting with Dynamo Db

当我尝试触发时出现此错误

创建触发器时出错:无法访问流 arn:aws:dynamodb:us-east-2:xxxxxx:table/xxxx/stream/2017-09-18T07:47:01.834。 请确保该角色可以在 IAM 中对您的流执行 GetRecords、GetShardIterator、DescribeStream 和 ListStreams 操作。

请帮助我,

将触发器附加到 DynamoDb 表时,您将收到 OP 发布的错误

您需要向为该 lambda 函数生成的 IAM 角色添加策略。

这是可用于创建策略的示例 JSON,只需替换 lambda 函数和流 ARN。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:region:accountnumber:function:functionname"
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:ListStreams"
            ],
            "Resource": "arn:aws:dynamodb:region:accountnumber:table/table-name/stream/2019-02-27T07:41:49.893"
        }
    ]
}

创建策略并将其附加到角色后,您可以返回 DynamoDB 并使用 lambda 函数创建新触发器。 如果操作正确,它将创建而不会出错。

根据错误消息,您的 IAM 设置不正确。 您需要将这些类型的角色分配给您的用户。

您必须创建一个策略,允许您的 AWS 函数访问 Cloudwatch 日志以及您刚刚创建的表。 转到 IAM 控制台,选择“角色”,然后选择“创建新角色”。

在此处输入图片说明

选择“AWS Lambda”角色: 在此处输入图片说明

然后单击“下一步”跳过“附加策略”部分

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html将帮助您解决此错误。 在此处输入图片说明 此外,我尝试遵循以下信息: https : //github.com/dwyl/learn-aws-lambda#what-is-lambda用于访问 dynamodb,它与 root(main) 用户一起工作正常。

我必须做的是转到 IAM 管理控制台并将AmazonDynamoDBFullAccess附加到特定角色。

似乎您只需要使用策略AWSLambdaDynamoDBExecutionRole创建此角色并附加到您的 lambda。 您可能不想要完全访问权限,因为这是一个读取操作。 在此处输入图片说明

当您创建 lambda 函数时,Lambda 默认为创建的 lambda 函数创建一个角色,但该角色不足以授予 Dynamo 调用 lambda 函数的权限。 因此,在角色部分寻找您的 lambda 函数并附加 AWSLambdaInvocation-DynamoDB 策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM