我在本地制作了 React & Go 产品。我将把它部署到 AWS EC2。
要在 AWS EC2 中工作,我需要为一些机密信息设置环境变量。
我已经为本地环境设置了 env 变量。但我不确定适用于生产环境 (AWS EC2( 的环境变量。
我已经为本地环境设置了env.
文件。但不确定如何在 ec2 中设置环境变量。
我将环境变量用于 axios、firebase 和 mysql。
//axios
const client = axios.create({
baseURL: process.env.REACT_APP_API_URL,
});
client
.get('/api/articles')
.then(response => {
this.setState({articles: response.data});
})
.catch(response => console.log('ERROR!! occurred in Backend.'));
//firebases
const firebaseConfig = {
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: '',
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
};
firebase.initializeApp(firebaseConfig);
export default firebase;
//mysql
err := godotenv.Load()
if err != nil {
//TODO production
}
db, err := sql.Open("mysql", os.Getenv("MYSQL_USER")+":"+os.Getenv("MYSQL_PASSWORD")+"@tcp(localhost:3306)/article")
if err != nil {
panic(err.Error())
}
defer db.Close()
err = db.Ping()
if err != nil {
panic(err.Error())
}
这是github。https://github.com/jpskgc/article
我将在 AWS EC2 中部署此 React & Golang 产品。但我不确定如何设置环境变量。
在 EC2 上启动服务器的 shell 脚本中,添加环境变量定义,例如:
export ENV_VAR_1=value_1
export ENV_VAR_2=value_2
... start your server ...
请注意,这仅适用于服务器端。 React 应用程序由在客户端浏览器中运行的 Javascript 组成,您无法控制那里的环境变量。
如果我理解得很好,上面的Axios
代码提取是 React 前端的一部分。 您不能在那里process.env
,因为这是在客户计算机上执行的。
我使用弹性 beanstalk 并在那里设置环境变量。