Сообщение Re[2]: Сloud functions и ограничения по ЯП от 31.07.2023 14:06
Изменено 31.07.2023 14:14 Shmj
Re[2]: Сloud functions и ограничения по ЯП
Здравствуйте, vsb, Вы писали:
vsb>С чего ты взял? Создаётся.
А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.
Даже если держать пулл как бы готовых вирт. машин и потом их сразу уничтожать после каждого запроса — будет дорого.
S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).
vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.
Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.
vsb>С чего ты взял? Создаётся.
А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.
Даже если держать пулл как бы готовых вирт. машин и потом их сразу уничтожать после каждого запроса — будет дорого.
S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).
vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.
Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.
Re[2]: Сloud functions и ограничения по ЯП
Здравствуйте, vsb, Вы писали:
vsb>С чего ты взял? Создаётся.
А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.
Даже если держать пулл как бы готовых вирт. машин и потом их сразу уничтожать после каждого запроса — будет дорого.
S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).
vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.
Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.
Возможно там нужно дать исходники на Rust и как-то проверяют, что нет небезопасных секций. С Go — не знаю.
vsb>С чего ты взял? Создаётся.
А с того, что там плата за каждый запрос, причем не большая. Фактически за 0.3 сек. успевают выполнить код. Если под каждый запрос создавать отдельную вирт. машину с нуля — не успеют все проинициализировать за 0.3 сек и слишком дорого будет, даже просто необходимое количество памяти выделить + провести инициализацию окружения — оно же требует установленной ОС.
Даже если держать пулл как бы готовых вирт. машин и потом их сразу уничтожать после каждого запроса — будет дорого.
S>> а изоляция достигается средствами ограничения API (как то стандартные функции записи в файл — не доступны или урезаны (как-то читать можно только из своей папки)).
vsb>API тут не при чём, любые ограничения API можно обойти, тем более на языках вроде Go или Rust, где ты можешь просто написать машинный код в память и выполнить его.
Так там, скорее всего, запрещены инструкции машинного кода. Думаю что как-то это можно сделать в Rust.
Возможно там нужно дать исходники на Rust и как-то проверяют, что нет небезопасных секций. С Go — не знаю.