繁体   English   中英

html 至 Azure 上的 pdf 将 pdfkit 与 wkhtmltopdf 结合使用

[英]html to pdf on Azure using pdfkit with wkhtmltopdf

我正在尝试编写一个 Azure function 将 html 输入转换为 pdf 并将其写入 blob 和/或将 pdf 返回给客户端。 我正在使用pdfkit python 库。 这需要 wkhtmltopdf 可执行文件可用。

为了在我的 windows 机器上进行本地测试,我安装了 windows 版本的 wkhtmltopdf,这完全可以正常工作。

当我将这个function部署到Azure的Linux应用服务上时,只有在kudo工具上执行sudo命令在应用服务上安装wkhtmltopdf后,我仍然可以成功执行function。

sudo apt-get install wkhtmltopdf 

我也知道我可以在应用程序服务本身上编写这个启动脚本。

我的问题是:我可以在我的本地 windows 机器上做些什么,这样我就可以直接从我的 vscode 部署 azure function 以及 wkhtmltopdf 的 linux 版本,而不必在应用程序服务本身上执行另一个脚本?

通过在 App 配置中设置以下命令将起作用。

感谢@pamelafox 的评论。

命令

PRE_BUILD_COMMANDPOST_BUILD_COMMAND

以下过程适用于每个构建。

  1. 如果由PRE_BUILD_COMMANDPRE_BUILD_SCRIPT_PATH指定,则运行自定义命令或脚本。
  2. 如果由VIRTUALENV_NAME指定,则创建 python 虚拟环境。
  3. 运行python -m pip install --cache-dir /usr/local/share/pip-cache --prefer-binary -r requirements.txt如果requirements.txt存在于 repo 的根目录中或由CUSTOM_REQUIREMENTSTXT_PATH指定。
  4. 如果setup.py存在,运行python setup.py install
  5. 运行 python package 命令并确定 python package 车轮。
  6. 如果在 repo 的根目录中找到manage.py ,则运行manage.py collectstatic 但是,如果DISABLE_COLLECTSTATIC设置为true ,则跳过此步骤。
  7. 如果由compress_virtualenv属性键指定,则压缩虚拟环境文件夹。
  8. 如果POST_BUILD_COMMANDPOST_BUILD_SCRIPT_PATH指定,则运行自定义命令或脚本。

搭建Conda环境和Python JupyterNotebook

以下过程适用于每个构建。

  1. 如果由PRE_BUILD_COMMANDPRE_BUILD_SCRIPT_PATH指定,则运行自定义命令或脚本。
  2. 设置 Conda 虚拟conda env create --file $envFile
  3. 如果 requirement.txt 存在于 repo 的根目录中或由requirment.txt指定,激活CUSTOM_REQUIREMENTSTXT_PATH conda activate $environmentPrefix并运行pip install --no-cache-dir -r requirements.txt
  4. 如果POST_BUILD_COMMANDPOST_BUILD_SCRIPT_PATH指定,则运行自定义命令或脚本。

Package 经理

使用最新版本pip安装依赖。

跑步

以下过程用于了解如何启动应用程序。

  1. 如果用户指定了启动脚本,则运行它。
  2. 否则,找到一个 WSGI 模块并使用gunicorn运行。
    1. 查找并运行包含wsgi.py文件的目录(对于 Django )。
    2. 在 repo 的根目录中查找以下文件,并在其中查找app class(对于 Flask和其他 WSGI 框架)。
      • application.py
      • app.py
      • index.py
      • server.py

Gunicorn 多人支持

要启用使用多个工作人员策略运行 gunicorn 并充分利用核心来提高性能并防止同步工作人员潜在的超时/阻塞,请在应用程序设置中添加并设置环境变量PYTHON_ENABLE_GUNICORN_MULTIWORKERS=true

在 Azure Web 应用程序中,运行您的应用程序的 Python 运行时的版本由站点配置中的LinuxFxVersion值决定。 请参阅../base_images.md了解如何修改它。

参考资料取自

应用服务上的 Python 运行时

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM