【问题标题】:React javascript "Error: Credential is missing" when connecting to DynamoDBClient连接到 DynamoDBClient 时反应 javascript“错误:缺少凭据”
【发布时间】:2022-10-17 06:28:56
【问题描述】:

我正在尝试从 React js 应用程序内部连接到我的 dynamoDB 表。我在本地设置了 AWS 凭证。当我运行我的应用程序时,我在 Chrome Devtools 上收到以下错误:“错误:凭据丢失”。

奇怪的是,如果我通过终端上的节点使用几乎相同的代码运行下面找到的 AWS 示例,它工作正常。 https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/dynamodb/src/partiQL_examples/src/partiql_getItem.js

为了运行 AWS 示例,我在我的 react SRC 文件夹中创建了一个新的 mjs 文件,因此它应该具有与 React 应用程序相同的访问权限,对吧?在 mjs 文件或 react 应用程序中没有显式添加凭据。

为什么 React 环境无权访问凭证?我已经尝试了 ~/.aws/credentials 和环境变量。 AWS SDK 似乎说它应该只适用于 Node.js。有什么想法吗?

import { DynamoDBClient, ExecuteStatementCommand} from '@aws-sdk/client-dynamodb';


function App() {  
  const dynamoDB = new DynamoDBClient({ region : "us-west-2"});

  async function loadFromCloud () {    
    const command = new ExecuteStatementCommand({
      Statement: `select * from TableX`
    });
    try {
      const data = await dynamoDB.send(command);
      console.log(data);
    } catch (error) {
      console.log(error);
    }
  }

【问题讨论】:

  • 你能分享你的客户端初始化代码吗?
  • 当然,完成。还在用适量分享...

标签: node.js reactjs amazon-dynamodb aws-cli


【解决方案1】:

确保你有AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY指定为环境变量并且您还指定AWS_SDK_LOAD_CONFIG=1

但是,您的 React 应用程序是在浏览器中运行的。它应该只适用于node.js 应用程序。

【讨论】:

  • 正如我的问题中所述,我已经尝试了环境变量。我不知道 AWS_SDK_LOAD_CONFIG,但这也无济于事。我仍然遇到同样的错误。
  • 这种方法适用于 node.js。 Here 你可以找到如何让它直接从浏览器工作,你的 React 应用就是这种情况。
  • 我正在使用节点(create-react-app)构建我的反应应用程序,所以我不相信这是真的。
  • 是真的。您只使用节点构建它,但它在浏览器中运行。
猜你喜欢
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多