gpt4 book ai didi

java - 无法在 {tableName} 查询 Dynamo

转载 作者:行者123 更新时间:2023-12-02 11:33:55 27 4
gpt4 key购买 nike

因此,当 lambda 函数尝试从查询使用表上的 GSI 之一的 dynamo 表中读取数据时,我在 lambda 函数内收到以下错误:

Unable to query Dynamo at XXXTable

现在我在 cloudformation 文件中定义了 lambda 和 dynamo 表。

这是授予 lambda 访问 dynamo 表权限的策略。

LambdaPolicy:
Type: AWS::IAM::Policy
Properties:
Roles:
- !Ref LambdaRole
PolicyName: LambdaPolicy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- "logs:*"
Resource: "arn:aws:logs:*:*:*"
- Effect: Allow
Action:
- "dynamodb:BatchGetItem"
- "dynamodb:BatchWriteItem"
- "dynamodb:DescribeTable"
- "dynamodb:GetItem"
- "dynamodb:PutItem"
- "dynamodb:UpdateItem"
- "dynamodb:DeleteItem"
- "dynamodb:Query"
- "dynamodb:Scan"
Resource:
- !GetAtt XXXTable.Arn

其中 XXXTable 是在同一 cloudformation 文件中定义的 Dynamo 表。现在我知道我可以通过控制台手动解决这个问题,方法是编辑 lambda 策略并将此行添加到资源中:

- "arn:aws:dynamodb:eu-west-1:accountNubmer:table/XXXTable/index/*"

但问题是,如何将其添加到 cloudformation 文件中?像这样的东西:

!GetAtt XXXTable.Arn + "/index/* 

任何帮助都会很棒。

最佳答案

我认为您只是缺少将它们组合在一起的 !Sub 函数。尝试:

- !Sub "${XXXTable.Arn}/index/*"

关于java - 无法在 {tableName} 查询 Dynamo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49088969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com