Я использую response как интерфейс и node js как backend, и я выполняю облачную подготовку, новый экземпляр ec2 с использованием terraform. Я еще не начал писать скрипт terraform.
Но я пишу bash скрипт в значении пользовательских данных для выполнения на новом созданном экземпляре. Я пишу этот атрибут userdata для terraform, просто чтобы знать, верен ли мой поток или нет.
И здесь я чувствую, что поток хорош, поправьте меня, если я ошибаюсь.
Примечание 1: Это условие выполняется с помощью одного щелчка на интерфейсе администратором, и создается новый экземпляр с интерфейсом и сервером вместе с новыми переменными среды (потому что здесь идентификатор клиента Paypal и ключ аутентификации Google остается уникальным для каждого экземпляра, поэтому как мне динамически установить эти переменные среды)
Примечание 2: Поскольку у меня серверная часть как node js, у меня есть данные формы {google auth идентификатор клиента, Paypal Cliend ID}, который я получаю от запрошенного пользователя, отправленного на веб-интерфейс. После того, как администратор примет запрос, вся эта подготовка должна произойти автоматически. И после нажатия этой кнопки администратором я вызываю скрипт terraform в бэкэнде node js, чтобы запустить новый экземпляр, там в атрибуте userdata terraform я использую следующий скрипт bash. Как мне установить значения данных формы {google auth client ID, Paypal Cliend ID} в моем bash скрипте.
Итак, каков метод, который может устанавливать эти node js переменные среды во время облачной подготовки? ?
этот terraform / main.tf будет вызываться node js, так как node js может установить переменные окружения внешнего и внутреннего интерфейса созданного нового экземпляра
terraform /main.tf
resource "aws_instance" "default" {
ami = var.ami-id
iam_instance_profile = var.iam-instance-profile
instance_type = var.instance-type
key_name = var.key-pair
private_ip = var.private-ip
subnet_id = var.subnet-id
vpc_security_group_ids = var.vpc-security-group-ids
user_data = <<EOF
sudo su -
yum install updates -y
yum install mysql -y
yum install nginx -y
sudo service nginx start
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node
mkdir cd /var/apps
cd /var/apps
yum install git -y
git clone https://username:password@github.com/username/frontend.git
git clone https://username:password@github.com/username/backend.git
cd frontend && npm install
//I want to set some node env variables for my front end here
//like NODE.env.PAYPAL_CLIENT_ID='0000aaaaa' NODE.env.GOOGLE_CLIENT_ID='12321ewre'
npm run build
cd ..
cd backend && npm install
//I want to set some node env variables for my backend here
//like NODE.env.PAYPAL_CLIENT_ID='0000aaaaa' NODE.env.GOOGLE_CLIENT_ID='12321ewre'
npm start
rm -r /etc/nginx/nginx.conf
cp backend/nginx/config/nginx.conf /etc/nginx/nginx.conf
sudo service nginx restart
EOF
tags = {
Name = var.name
}
}
ПРИМЕЧАНИЕ. У меня есть файлы .env.production и .env.development, но я не знаю, как перезаписать их значениями от node js до