让 LibreOffice(未安装,仅限文件)在 AWS Lambda 上运行

Getting LibreOffice (uninstalled, files only) to work on AWS Lambda

我快到了,但卡在了最后一个障碍。

$ /path/to/soffice.bin --version

^ 这适用于我的本地机器(Docker 容器)和(容器部署在)AWS Lambda

然而,

    $ /path/to/soffice.bin \
        --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --norestore --nosplash \
        --convert-to pdf:writer_pdf_Export \
        --outdir /tmp \
        $filename \
            2>&1 || true  # avoid exit-on-fail

...失败:

LibreOffice - dialog 'LibreOfficeDev 6.4 - Fatal Error': 'The application cannot be started. User installation could not be completed. 'LibreOfficeDev 6.4 - Fatal Error: The application cannot be started. User installation could not be completed.

在 google 上搜索,一切都指向 ~/.config/libreoffice

的权限问题

Lambda 运行时的文件权限发生了一些奇怪的事情。 也许它正在尝试读取或写入它无权访问的位置。

有什么办法让它工作吗?

问题是lambda只能写在/tmp,但是默认的HOME不是/tmp

添加

export HOME=/tmp

在调用 /path/to/soffice.bin

之前

应该可以解决问题。

另外请注意,第一个 运行 会由于未知问题而产生可预测的错误。所以你应该处理重试。

(使用 Hero Translate 翻译)