Stavím aplikace pomocí reagovat create-react-app
, který používá javascript aws sdk pro připojení k dynamodb. Mám to práci na místě, ale nejsem schopen to dostat do práce, když hostil na AWS Zesílit. Můj kámen úrazu je, že nevím jak předat aws_access_key_id a aws_secret_access_key v Zesilovat na reagovat aplikace.
Lokálně, mám .env soubor s REACT_APP_AWS_ACCESS_KEY_ID
a REACT_APP_AWS_SECRET_ACCESS_KEY
. Tyto samozřejmě nejsou definovány v Zesilovat.
Uvnitř balíčku.json, snažil jsem se nastavit proměnné v build skriptu. Dokonce jsem se snažil jen s access_key_id sám vyloučit problémy v nastavení dvou proměnných najednou.
"scripts": {
"build": "REACT_APP_AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID REACT_APP_AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY react-scripts build",
},
Nicméně, to má za následek prázdnou hodnotu pro REACT_APP_ proměnných.
Zkoušel jsem úpravy Zesílit aplikace build settings v dvěma různými způsoby a to jak s a bez obalu.json změnit, také bez úspěchu.
build:
commands:
- npm run build
- echo "REACT_APP_AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" >> .env
build:
commands:
- npm run build
- echo "REACT_APP_AWS_ACCESS_KEY_ID=$REACT_APP_AWS_ACCESS_KEY_ID" >> .env
Nevím, co jiného mám dělat, nebo jestli jsem zcela na špatné cestě. Byla jsem si jistá, že AWS prostředí vstřikuje nich, když aplikace je spuštěn v rámci ekosystému, protože jsem to viděla práci s jiné aplikace hostované na Elastic Beanstalk.
Nakonec vše, co potřebuji, je access_key_id a secret_access_key pro použití v javascriptu aws sdk pro inicializaci dynamodb klienta jako takového.
const client = new DynamoDB({
region: 'us-east-1',
credentials: {
accessKeyId: process.env.REACT_APP_AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.REACT_APP_AWS_SECRET_ACCESS_KEY
}
});