当前位置: 首页 > 知识库问答 >
问题:

AWS AppSync上GraphQL查询后的AWS Lambda超时

卓雅达
2023-03-14

我部署了一个AWS AppSync GraphQL终结点与放大器以下教程:

https://aws-amplify.github.io/docs/js/api#amplify-graphql客户端

我用Node创建了一个Lambda函数。用于查询数据的js和TypeScript数据:

import { APIGatewayEvent, Callback, Context, Handler } from 'aws-lambda';
import Amplify, { API, graphqlOperation } from "aws-amplify";
import * as queries from './src/graphql/queries';
import * as mutations from './src/graphql/mutations';
import { CreateBlogInput } from './src/API';
import aws_config from "./src/aws-exports";

Amplify.configure(aws_config);

export const list: Handler = async (event: APIGatewayEvent, context: Context, cb: Callback) => {
  const allBlogs = await API.graphql(graphqlOperation(queries.listBlogs));

  // this seems to be working
  console.log(JSON.stringify(allBlogs));

  const response = {
    statusCode: 200,
    body: JSON.stringify(allBlogs),
  };

  cb(null, response);
}

现在,当我通过HTTP调用Lambda函数时,它检索数据并将其记录到控制台。但它从未完成请求并做出响应,它总是会超时,即使我将超时时间增加到30秒。运行变异和插入数据也会发生同样的情况。

有什么想法吗?

共有1个答案

昝欣可
2023-03-14

这里的问题是你混合了你的lambda签名。

您可以使用async并返回(或在出错时抛出):

export const list: Handler = async (event: APIGatewayEvent, context: Context, cb: Callback) => {
  // ... rest of function

  return response;
}

或者您不使用async,而是使用回调函数

export const list: Handler = (event: APIGatewayEvent, context: Context, cb: Callback) => {
  // ... rest of function

  cb(null, response);
}
 类似资料:
  • 所以我不知道这是否真的描述了我的问题,但这是我能得到的最接近的吗? 我正在使用AWSAppsyncClient进行一些GraphQL突变。由于模型的性质,在更大程度上,由于我缺乏经验,我需要创建一个记录,然后创建两个依赖于第一个的记录,然后才能将它们链接到数据库中。 目前,我正在进行第一次变异,它返回所创建记录的ID。然后在查询返回的promise中创建中间记录。它基本上看起来像: 问题是Prom

  • 我有cassandra单片应用程序,我想写在高速率从队列中读取一些有效载荷。Cassandra集群有3个节点。当我开始并行处理大量消息(通过生成线程)时,我得到以下异常 我将CQLsession创建为bean 我将此CqlSession注入到映射器和其他类中以运行查询 在我的datastax驱动程序中,我给了3个节点的ip作为联系点,我是否需要在CQLsession创建/或我的cassandra节

  • 和相应的查询解析器 这里的主要想法只是有一个过滤器,可以看到什么食谱有一些成分,用户会通过应用程序通知。 我使用数据库中的所有食谱获得了“recipe”查询,但我需要一个获取这些食谱的查询,然后使用field comprient进行筛选,例如: 食谱-糖蛋糕,配料:糖、蜂蜜、四个… 配方-天鹅绒蛋糕,配料:糖、香草、... 并且用户通知Sugar,API应该返回这2个食谱,但是如果用户通知Suga

  • 我读过https://github.com/leangen/graphql-spqr-spring-boot-starter但是我仍然有点困惑如何将代码中的内容映射到我需要在GraphQL请求中查询的内容。 我有上面的代码。我是GraphQL的新手,但我认为查询需要看起来像这样,其中getTrades是我要调用的方法的名称,tradeId是我要检索的字段。 } 我希望我能拿回一个交易列表。但是,我

  • 但是,当我想使用从上一次查询中获得的Id进行第二次查询并使用该Id作为筛选器时,该怎么办?当我像以前一样在ExampleComponent中返回另一个graphql查询时,我会得到一个错误,即我没有返回有效的react组件。那我该怎么做呢? 提前感谢!

  • 我是GraphQL新手。我知道这是个很基本的问题。但我花了很多时间却没能成功。 我的需求是我需要从java类使用graphql-java api方法发送GraphQL查询。 以下是查询: