Кукловодитель не работает в проекте node.js после развертывания в Azure (работает локально)Javascript

Форум по Javascript
Ответить
Anonymous
 Кукловодитель не работает в проекте node.js после развертывания в Azure (работает локально)

Сообщение Anonymous »

Я использую кукловолок в моем проекте Node.js, и он отлично работает на моей локальной машине. Однако, после развертывания проекта в Azure, я сталкиваюсь с проблемами, когда кукловорот, похоже, не функционирует должным образом. < /P>
Проблема: < /p>
Сообщение об ошибке, которое я получаю: < /p>

Код: Выделить всё

Could not find Chrome (ver. 131.0.6778.85). This can occur if either
1. you did not perform an installation before running the script (e.g. `npx puppeteer browsers install chrome`) or
2. your cache path is incorrectly configured (which is: /root/.cache/puppeteer).
For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.
Это говорит о том, что кукольник не может найти экземпляр хрома в среде Azure.
Детали среды:
Локальная машина: отлично работает без каких -либо проблем. /> Установка кукловода с хромом: < /p>

Код: Выделить всё

npm install puppeteer
< /code>
Настройка API < /p>
app.get("/_api/screenshot", async (req, res) => {
try {
// Get the URL from query string, default to example.com if not provided
const targetUrl = req.query.url || "https://example.com";

console.log("Starting browser launch...");

// Launch Puppeteer with necessary arguments for cloud environments
const browser = await puppeteer.launch({
headless: true,
args: [
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-dev-shm-usage",
"--single-process",
"--no-zygote",
],
// Use the path from environment variable or let Puppeteer find it
executablePath: process.env.PUPPETEER_EXECUTABLE_PATH,
});

console.log("Browser launched successfully");

const page = await browser.newPage();
console.log("Navigating to:", targetUrl);

// Navigate to the target URL and wait until network is idle
await page.goto(targetUrl, { waitUntil: "networkidle0" });
console.log("Page loaded, taking screenshot");

// Take a screenshot as a base64 string
const screenshotBuffer = await page.screenshot({ encoding: "base64" });
console.log("Screenshot taken, closing browser");

await browser.close();

// Return the screenshot as an HTML image
res.send(`
[img]data:image/png;base64,${screenshotBuffer}[/img]
`);
} catch (error) {
console.error("Error in /api/screenshot:", error);
res.status(500).json({
error: "Failed to take screenshot",
message: error.message,
stack: error.stack,
puppeteerInfo: process.env.PUPPETEER_EXECUTABLE_PATH || "No path set",
});
}
});
Но все еще получает приведенную выше ошибку
Примечание. Мы используем рабочий процесс GitHub для развертывания обновленный код в Azure, если кто -то знает или сделает это, пожалуйста>

Подробнее здесь: https://stackoverflow.com/questions/795 ... rks-locall
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»