【问题标题】:How to reference the name of the table used by GraphQL models in Amplify when calling a DynamoDB in Lambda function?在 Lambda 函数中调用 DynamoDB 时,如何在 Amplify 中引用 GraphQL 模型使用的表的名称?
【发布时间】:2021-06-10 09:03:16
【问题描述】:

我正在尝试使用 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


    【解决方案1】:

    我想我遇到了您的问题,但在这里尝试引用该表听起来不是最好的选择。

    看看这篇来自 AWS 的帖子,它展示了如何通过 amplify mock api 在本地运行放大 https://aws.amazon.com/pt/blogs/mobile/amplify-framework-local-mocking/

    【讨论】:

    • 我知道如何在本地模拟 api,但这并不能解决我的问题。为什么在这里尝试引用该表不是最佳选择?有没有其他方法可以在 lambda 函数中修改数据库中的对象?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-09-29
      • 2021-03-26
      • 2021-11-29
      • 1970-01-01
      • 2021-03-20
      • 2023-02-09
      • 2021-11-10
      • 2020-08-22
      • 2020-08-19
      相关资源
      最近更新 更多