GCP和NodeJS的新功能。请忍受我缺乏专业知识。
我的Google VM实例是Debian
Api端点1
mynodejsserverongooglevminstance.com/api/startservice
这将在Debian VM实例上运行一些命令
screen
node start.js
node index.js
API端点2
mynodejsserverongooglevminstance.com/api/stopservice
node stop.js
stopservice端点将运行更多命令...
基本上我在问什么是最好的选择?
答案 0 :(得分:0)
在此示例中,我将使用Express HTTP库
const express = require('express');
const app = express();
const { exec } = require('child_process');
const AuthValidator = (req, res, next) => {
if(req.headers['X-Secret-Code'] === 'some_super_secret_password') return next();
return res.status(400).end('Bad Authorization');
}
app.get('/api/startservice', (req, res) => {
exec('screen && node start.js && node index.js', (error, stdout) => {
if (error) {
console.error(`Fail to start Node app: ${error}`);
return res.status(500).end(error.message);
}
res.status(201).end(stdout);
});
});
app.get('/api/stopservice', (req, res) => {
exec('node stop.js', (error, stdout) => {
if (error) {
console.error(`Fail to stop Node app: ${error}`);
return res.status(500).end(error.message);
}
res.status(201).end(stdout);
});
});
一旦客户端向GET
端点执行/api/startservice
请求,Node应用程序将帮助执行其中三个命令
/api/stopservice
相同,一旦触发此端点,Node应用将执行stop.js
脚本