[英]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 控制台,選擇“角色”,然后選擇“創建新角色”。
然后單擊“下一步”跳過“附加策略”部分
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附加到特定角色。
當您創建 lambda 函數時,Lambda 默認為創建的 lambda 函數創建一個角色,但該角色不足以授予 Dynamo 調用 lambda 函數的權限。 因此,在角色部分尋找您的 lambda 函數並附加 AWSLambdaInvocation-DynamoDB 策略。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.