在 Lambda 函数中调用 DynamoDB 时如何引用 Amplify 中 GraphQL 模型使用的表名称?

问题描述 投票:0回答:3

我正在尝试使用 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-lambda amazon-dynamodb aws-amplify
3个回答
1
投票

我通过更新具有读取/编辑表权限的函数来解决这个问题。然后可以使用环境变量引用该表。


0
投票

我想我明白了你的问题,但尝试参考表格听起来不是最好的选择。

查看 AWS 发布的这篇文章,其中展示了如何通过

amplify mock api
在本地运行放大 https://aws.amazon.com/pt/blogs/mobile/amplify-framework-local-mocking/


0
投票

不是答案,但 StackOverflow 不想让我发表评论(新用户且声誉不够)。

您说您通过更新权限然后使用环境变量解决了这个问题。您介意发布您的配置以准确显示您所做的事情吗?我遇到了同样的问题,可以设置权限,但我没有看到生成任何合适的环境变量来帮助我获取 lambda 内的表名:(

© www.soinside.com 2019 - 2024. All rights reserved.