推送到 AWS Amplify 时如何将 json 文件导入到节点 js 文件中

问题描述 投票:0回答:1

我有一个在 AWS cognito 中创建帐户的文件:

const { Amplify } = require('aws-amplify');
const { signUp } = require('aws-amplify/auth');
const fs = require('fs');
const path = require('path');

async function doSomething() {
try {
  const pathToAmplifyConfig = path.join("/Users", "myusername", "Desktop", "testingamplify", "backend", "src", "amplifyconfiguration.json");
  const amplifyConfig = JSON.parse(fs.readFileSync(pathToAmplifyConfig, 'utf8'));

  Amplify.configure(amplifyConfig);
  const { isSignUpComplete, userId, nextStep } = await signUp({
    username: "mytestusername123",
    password: "mypassword",
    options: {
      userAttributes: {
        email: "[email protected]",
      },
      // optional
      autoSignIn: true // or SignInOptions e.g { authFlowType: "USER_SRP_AUTH" }
    }
  });
  console.log("User created!");

  // console.log(userId);
} catch (error) {
  console.log('there was an error when singing:', error);
}
}
doSomething();

当我在本地运行这个文件时,效果很好。但是,当我在终端中运行“Amplify Push”并将其上传到 AWS 时,该文件不再有效。相反,它给了我一个错误:“找不到模块/Users/myusername/Desktop/testingamplify/backend/src/amplifyconfiguration.json”。

如何正确地将 amplifyconfiguration.json 导入此文件,以便我可以在 AWS 云中使用它?该函数是一个简单的 lambda 函数,已上传到 API Gateway,因此当我调用 HTTP 请求时,它会执行该 lambda 函数。

node.js amazon-web-services aws-lambda aws-api-gateway
1个回答
0
投票

文件位置基于以

/Users..
开头的系统位置。构建时不会找到该路径。您应该尝试读取相对于正在使用它的文件的路径。

const pathToAmplifyConfig = path.resolve(__dirname, "<relative path from your file that is reading the json config>")

__dirname
将是您的文件的路径。

© www.soinside.com 2019 - 2024. All rights reserved.