簡體   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