首页 > 解决方案 > 无法在 AWS Lambda 上找到 Xvfb

问题描述

我想在 AWS Lambda 上的 python 3.8 中运行 xvfbwrapper。我正在使用自定义 docker 容器,并已验证已安装 xvfb 并且它位于 /usr/bin/Xvfb。但是,当我运行 python 脚本时,出现以下错误:

[错误] OSError: 找不到 Xvfb。请安装并重试。Traceback(最近一次调用最后一次):文件“/var/task/xvfbwrapper.py”,第 41 行,在init raise EnvironmentError(msg)

我正在使用 github 操作来编译和部署无服务器应用程序,这是我的 github 工作流 .yml 文件:

name: deploy-aws-lambda

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [10.x]
    steps:
      - uses: actions/checkout@master
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install Dependencies
        run: npm install
      - name: Install Xvfb
        run: sudo apt-get install xvfb
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-2
      - name: Serverless Deploy
        run: npm run-script deploy

我的python代码以下列方式使用xvfbwrapper:

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()
try:
    # launch stuff inside
    # virtual display here.
finally:
    vdisplay.stop()

如果 Xvfb 位于 /usr/bin/Xvfb,我无法弄清楚为什么找不到 Xvfb。我什至让 python 文件打印出 xvfbwrapper 搜索 Xvfb 的路径,并且 /usr/bin 包含在其中。关于如何使其工作的资源数量有限,因此我们将不胜感激。

标签: pythondockeraws-lambdaxvfb

解决方案


推荐阅读