使用Microsoft Playwright在Azure Function Linux使用计划中创建本地PDF文件

问题描述

我正在使用Microsoft Playwright以便从Azure功能(HTTP触发器)内部的远程网站创建PDF。使用的方法是page.GetPdfAsync(),该方法仅处理文件路径以创建生成的PDF文件。我想将文件存储在Azure Blob存储容器中,但是由于GetPdfAsync()方法不能处理流或Azure Blob存储,因此我试图临时存储生成文件。我尝试使用其他本地文件夹,例如 / tmp / local ,但是每次触发该功能时,在跟踪中都会看到一个异常,指出文件系统为只读

我从blog post阅读了Anthony Chu内容,因此看来Playwright现在在Linux消费计划中受支持,但是在本文中,生成的屏幕截图会直接发送回HTTP响应中,并且从未存储在本地磁盘。

对于编码环境,我正在使用C#,VS 2019和Azure Function Core Tools + Azure CLI进行部署。

有什么想法我该如何处理?

解决方法

Page.GetPdfAsync()返回一个byte[]。您可以将null传递到路径,并将生成的byte[]上载到Azure。