开发者社区 > 云原生 > Serverless > 正文

函数计算,FC函数环境问题, 我在python环境下请求网站,需要执行jsdom,所以需要配置Nod

函数计算,FC函数环境问题, 我在python环境下请求网站,需要执行jsdom,所以需要配置Nodejs环境,我根据官方文档,配置了层,但是不起作用,具体配置如如下

提问27.png

返回如下错误;

提问28.png

提问29.png

展开
收起
山海行 2023-08-10 15:48:50 82 0
2 条回答
写回答
取消 提交回答
  • 需要使用custom runtime 构建层兼容运行时选Debian9/Debian10 或者 container

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-08-10 20:56:42
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    创建一个新的文件夹,用于存放 Node.js 环境的文件和依赖项。

    在该文件夹中创建一个 package.json 文件,并添加以下内容:

    json
    Copy
    {
    "name": "my-layer",
    "version": "1.0.0",
    "description": "Node.js layer for executing jsdom in Python environment",
    "dependencies": {
    "jsdom": "^16.6.0"
    }
    }
    在这个示例中,我们将 jsdom 添加为依赖项,您可以根据需要添加其他的依赖项。

    打开终端或命令行界面,进入到包含 package.json 文件的文件夹,并运行以下命令安装依赖项:
    bash
    Copy
    npm install
    这将安装 jsdom 和其他指定的依赖项。

    打包 Node.js 环境为一个 ZIP 文件。您可以使用以下命令:
    bash
    Copy
    zip -r nodejs-layer.zip .
    这将创建一个名为 nodejs-layer.zip 的 ZIP 文件,其中包含 Node.js 环境和依赖项。

    登录到函数计算平台的管理控制台。

    创建一个新的层(Layer),并为其指定名称和描述。

    上传之前创建的 nodejs-layer.zip 文件作为层的内容。

    在您的函数配置中,将该层与函数关联。确保函数可以访问到该层。

    在您的 Python 代码中,通过调用 subprocess 模块来执行 Node.js 代码。例如:

    python
    Copy
    import subprocess

    def execute_js_code():
    result = subprocess.run(['node', 'path/to/your/js/file.js'], capture_output=True, text=True)

    # 处理执行结果
    print(result.stdout)
    

    在这个示例中,您需要将 "path/to/your/js/file.js" 替换为您实际的 JavaScript 代码文件路径。

    2023-08-10 19:53:35
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    All in Serverless 阿里云核心产品全面升级 立即下载
    AIGC 浪潮之上,森马的 Serverless 实践之旅 立即下载
    极氪大数据 Serverless 应用实践 立即下载