AWS Amplify, "Error: No credentials" when getting items from AppSync graphql API

AWS Amplify, "Error: No credentials" when getting items from AppSync graphql API

我已经发布了我的 React 应用程序来放大,那里一切顺利。但是当我打开 amplify URL 时,我发现没有从数据库中提取任何项目,并且控制台中出现错误,提示“无凭据”

我认为问题出在 AppSync API 上。 我使用 Amplify CLI 制作它,它使用 API 密钥身份验证。

我在本地使用生成的文件 aws-exports.js 提供凭据。我像这样在我的 index.tsx 中导入它:

import awsmobile from "./aws-exports";

Amplify.configure(awsmobile);

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);

但是这个文件没有被推送到 git,所以 Amplify 显然没有从 repo 中得到这个。但我假设它能够生成自己的 aws-exports.js 文件,因为它不会在导入时出现任何错误。

那么,我在这里缺少什么?我是否必须在我的 AppSync api 上使用其他方法进行身份验证或者这里有什么问题? 谢谢!

我想我可能已经找到了解决方案。

我只需要像这样用 @aws_api_key 注释我的 schema.graphql:

type Item @model @aws_api_key {
  id: ID!
  name: String
}

当然还有您定义的任何自定义变更和订阅。

参见:https://aws.amazon.com/blogs/mobile/graphql-security-appsync-amplify/