Публичный URL
HTTP-сервис внутри песочницы можно открыть через URL AgentBox. Запустите сервис на нужном порту, передайте этот порт в getHost или get_host и добавьте схему https://.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create();
try {
await sandbox.commands.run("python3 -m http.server 3000", {
background: true,
});
await sandbox.commands.run(
"until curl -fsS http://127.0.0.1:3000/ >/dev/null; do sleep 0.1; done",
);
const url = `https://${sandbox.getHost(3000)}`;
const response = await fetch(url);
console.log(url);
console.log(response.status);
} finally {
await sandbox.kill();
}getHost и get_host возвращают имя хоста, а не полный URL. AgentBox завершает HTTPS-соединение и передаёт запрос на выбранный порт песочницы, поэтому сам сервис может слушать обычный HTTP.
Для каждого сервиса укажите свой порт. URL доступен, пока работает песочница. Чтобы защитить входящие запросы токеном, настройте ограничение публичного доступа.