Для удаленного выполнения сценария необходимо подключиться к виртуальной машине.Для меня самый простой способ - это развернуть конечную точку на виртуальной машине (что бы это ни было, но подумайте, чтобы защитить ее с помощью SSL и аутентификации).
Затем вызовите эту конечную точку с вашим приложением реагирования.Конечная точка может порождать сценарии на виртуальной машине.
В случае хранения вы можете
- Установить событие , которое вызовет функцию облака
- Облачная функция вызывает конечную точку, доступную на вашей виртуальной машине
- Подключите безсерверный соединитель VPC к вашей функции для доступа к вашей виртуальной машине в частном порядке (публичный IP не требуется).Это самый безопасный способ.
ОБНОВЛЕНИЕ
Вот код для установки на виртуальной машине:
const express = require('express');
const app = express();
var exec = require('child_process').exec;
app.get('/', (req, res) => {
//Change the script. Here it's pwd, set what you want
exec('pwd', function callback(error, stdout, stderr){
//Handle here the output of your bash script
res.send(stdout)
})
res.statusCode=200;
})
const port = process.env.PORT || 8080;
app.listen(port, () => {});
На вашей виртуальной машине установите nodejs
и express
.Затем запустите node index.js
.Вы можете настроить порт, установив переменную env PORT
в значение, которое вы хотите.Иначе это 8080 по умолчанию.
Откройте необходимое правило брандмауэра для вашей виртуальной машины, чтобы разрешить вызов на ваш экспресс-сервер.
Здесь нет ни SSL на сервере, ни аутентификации, даже базовой.