我有一个在 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 函数。
文件位置基于以
/Users..
开头的系统位置。构建时不会找到该路径。您应该尝试读取相对于正在使用它的文件的路径。
const pathToAmplifyConfig = path.resolve(__dirname, "<relative path from your file that is reading the json config>")
__dirname
将是您的文件的路径。