我正在尝试使用 AWS Amplify 设置 GraphQL api。该文档提供了从 Python 中的 Lambda 函数调用 DynamoDB 的解决方案:
import json
import boto3
client = boto3.client('dynamodb')
def handler(event, context):
data = client.scan(
TableName='your-table-name'
)
response = {
'statusCode': 200,
'body': json.dumps(data),
'headers': {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
}
return response
我不明白的是如何引用 Amplify 中 GraphQL 模型使用的表的名称并将其放入
TableName='your-table-name'
(这样它既适用于云版本又适用于模拟)。有什么想法吗?
编辑:通过更新具有读取/编辑表权限的函数来解决。然后可以使用环境变量引用该表。
我通过更新具有读取/编辑表权限的函数来解决这个问题。然后可以使用环境变量引用该表。
我想我明白了你的问题,但尝试参考表格听起来不是最好的选择。
查看 AWS 发布的这篇文章,其中展示了如何通过
amplify mock api
在本地运行放大
https://aws.amazon.com/pt/blogs/mobile/amplify-framework-local-mocking/
不是答案,但 StackOverflow 不想让我发表评论(新用户且声誉不够)。
您说您通过更新权限然后使用环境变量解决了这个问题。您介意发布您的配置以准确显示您所做的事情吗?我遇到了同样的问题,可以设置权限,但我没有看到生成任何合适的环境变量来帮助我获取 lambda 内的表名:(