AWS Appsync GraphQL 查询在成功的 200 响应中静默失败

AWS Appsync GraphQL query silently failing though successful 200 response

我有一个 React Amplify 应用程序 运行 两个环境。一种环境适用于我妻子的博客 (www.riahraineart.com) and one for my blog (www.joshmk.com)。这两个站点都 运行 关闭同一个 repo,我只是根据我用来从 table.

检索它们的配置的环境变量来配置不同的站点
  useEffect(() => {
    async function fetchData() {
      const configData = await API.graphql({
        query: queries.getConfiguration,
        variables: { id: process.env[configIdName] },
      });
      if (configData && isMounted.current)
        setConfig(configData.data.getConfiguration || {});
    }
    if (process.env[configIdName]) {
      fetchData();
    }
  }, [isMounted, configIdName]);

对于我的站点,当我为此配置发出 GraphQL 请求时,请求成功并且站点启动。对于我妻子的站点,此对配置 table 的调用静静地失败了。沉默是指 API 没有返回有用的响应,即使它是成功的 200 响应。

当我打开 AppSync,转到两个环境和 运行 查询时,我收到了配置项。当我打开 dynamodb 时,我也会看到它们。

我在想某个地方可能有一些过期的令牌,但如果是这样的话,我认为我会收到一个失败的响应,说明这一点。

另一种可能是我妻子修改了她网站的配置或创建了一个 post,其中包含一些前端不希望看到的内容。但在那种情况下,我至少希望看到接收她的站点配置的呼叫的响应。

在此预先感谢您的任何见解!

我修好了!不幸的是,该解决方案非常适合我的情况,因此它可能不会为其他人提供太多价值。虽然,我希望它有助于解决问题。

使用 amplify pull --appId <appId> --envName <envName> 在本地将我的后端配置切换到她的站点后,我注意到配置调用现已成功。我忘记了我实际上从未在本地 运行 她的站点,我只是跳到她的分支合并和推送。

尽管该站点仍未呈现,这让我耳目一新。我发现我已经为一些图像留下了检查器,这些图像正在对我的最顶层组件进行门控渲染。我的妻子有大量图片,所以我认为这个调用花费的时间太长,无法使事件链以正确的顺序加载项目,并且页面显示为空白。只需在那时删除对这些图像的检查,就会显示 UI.