为了账号安全,请及时绑定邮箱和手机立即绑定

在 Azure Functions 中运行 Playwright

在 Azure Functions 中运行 Playwright

莫回无 2023-03-10 13:42:17
我正在尝试运行一个简单的 Azure 函数,该函数将根据浏览器中的可见内容进入页面并生成 PDF。我创建了一个 NodeJS 12 Azure Function with Linux Consumption Plan (B1)。我设置PLAYWRIGHT_BROWSERS_PATH为0。函数代码如下所示:const { chromium } = require("playwright-chromium");const baseUrl = "http://someurl";const targetPage = "/action/";module.exports = async function (context, req) {    const browser = await chromium.launch();    const page = await browser.newPage();    console.log (baseUrl + targetPage + context.bindingData.id)    await page.goto(baseUrl + targetPage + context.bindingData.id, { waitUntil: 'domcontentloaded' });        await page.emulateMedia({ media: 'print' });    onst result = await page.pdf({ printBackground: true, format: 'letter' });            context.res = {      body: result,      headers: { 'Content-Type': "application/pdf" }    };       await page.close();    await browser.close();};包.json{  "name": "",  "version": "",  "scripts": {    "start": "func start",    "test": "echo \"No tests yet...\""  },  "description": "",  "devDependencies": {},  "dependencies": {    "playwright-chromium": "1.3.0"  }}和函数.json{  "bindings": [    {      "authLevel": "anonymous",      "type": "httpTrigger",      "direction": "in",      "name": "req",      "methods": [        "get"      ],      "route": "route/{id}"    },    {      "type": "http",      "direction": "out",      "name": "res"    }  ]}当我检查应用洞察时,我发现有以下错误:Exception while executing function: Functions.PDF Result: FailureException: Worker was unable to load function PDF: 'Error: Cannot find module 'playwright-chromium'Require stack:- /home/site/wwwroot/PDF/index.js- /azure-functions-host/workers/node/worker-bundle.js- /azure-functions-host/workers/node/dist/src/nodejsWorker.js'Stack: Error: Cannot find module 'playwright-chromium'
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

我玩了一段时间你的例子,我得到了同样的错误。这些是我发现使我的示例起作用的东西:

必须是 Linux。我知道您提到您选择了一个 Linux 计划。但我发现在 VS Code 中那部分是隐藏的,而在 Web 上默认是 Windows。这很重要,因为只有 Linux 计划npm install在服务器上运行。

在此处输入图像描述

确保您在服务器上构建。您可以在 VS 代码设置中找到此选项:

在此处输入图像描述

确保在发布之前设置了环境变量PLAYWRIGHT_BROWSERS_PATH

在此处输入图像描述


查看完整回答
反对 回复 2023-03-10
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信