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

部署代码的地方可以下载Chrome浏览器吗?还是每次部署都是一个新的环境。就是我开发环境用到了Chr

部署代码的地方可以下载Chrome浏览器吗?还是每次部署都是一个新的环境。就是我开发环境用到了Chrome和chromedriver,部署到生产之后,没有这个了,我如何配置生产环境的文件内容呢? 在生产环境安装Chrome和chromedriver

展开
收起
学习娃 2023-06-09 15:34:00 199 0
6 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    您好!阿里云函数计算是无状态的Serverless服务,每次部署都会创建一个新的环境,因此您需要在每次部署时配置所需的文件内容和依赖项。

    如果您的函数计算代码需要使用Chrome浏览器和chromedriver,您可以在部署代码前将这些文件打包到您的代码中。具体步骤如下:

    1. 在本地开发环境中,将Chrome浏览器和chromedriver文件打包到您的代码中。

    2. 将打包后的代码上传到阿里云函数计算。

    3. 在函数计算中,您可以通过配置环境变量的方式来指定Chrome浏览器和chromedriver的路径。例如,可以在函数计算中设置一个名为“CHROME_PATH”的环境变量,其值为Chrome浏览器的路径,另外再设置一个名为“CHROMEDRIVER_PATH”的环境变量,其值为chromedriver的路径。

    4. 在函数计算中,您可以使用Linux系统的包管理工具(例如yum或apt-get)来安装Chrome浏览器和chromedriver。例如,您可以在函数计算中执行以下命令来安装Chrome浏览器和chromedriver:

    sudo apt-get update
    sudo apt-get install -y chromium-browser chromium-chromedriver
    

    在函数计算中安装Chrome浏览器和chromedriver可能会增加函数启动时间和资源消耗,因此建议您尽量将所需的文件打包到代码中并通过环境变量指定其路径。

    2023-06-09 18:41:08
    赞同 展开评论 打赏
  • 在函数计算中,每次部署都是一个新的环境,因此您需要在每次部署时手动安装所需的软件。

    如果您需要在生产环境中使用Chrome和chromedriver,可以编写一个初始化脚本,在函数被触发执行时自动运行该脚本以安装所需的软件和配置文件。具体来说,您可以在代码中使用shell命令来安装Chrome和chromedriver,并将其路径添加到系统PATH环境变量中,以便函数能够正确地找到这些软件。例如:

    import os

    安装Chrome

    os.system('wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb') os.system('sudo dpkg -i google-chrome-stable_current_amd64.deb')

    安装Chromedriver

    os.system('wget https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip') os.system('unzip chromedriver_linux64.zip') os.system('sudo mv chromedriver /usr/local/bin') os.system('sudo chown root:root /usr/local/bin/chromedriver') os.system('sudo chmod +x /usr/local/bin/chromedriver')

    将Chromedriver路径添加到系统PATH环境变量

    os.environ["PATH"] += os.pathsep + os.path.dirname('/usr/local/bin/chromedriver') 当您在部署函数代码时,需要同时上传初始化脚本和所需的软件包,并在函数配置中指定要运行的初始化脚本。这样,当函数被触发执行时,初始化脚本将自动运行并安装所需的软件,以确保函数能够正常执行。

    2023-06-09 18:30:10
    赞同 展开评论 打赏
  • 有将chrome一块打包部署吗,可以试下挂载puppeteer公共层

    环境中默认是没有的 https://help.aliyun.com/document_detail/193058.html?spm=a2c4g.451191.0.0.249725ceK5BejH

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

    2023-06-09 17:21:54
    赞同 展开评论 打赏
  • 十分耕耘,一定会有一分收获!

    楼主你好,通常来说,在生产环境部署代码时,安装Chrome浏览器和chromedriver是不推荐的。这是因为它们需要占用大量的资源,导致服务器运行效率下降。

    相反的,你可以使用headless Chrome和chromedriver。headless Chrome是Google Chrome的一种模式,在这种模式下,Chrome不会显示任何界面,从而节省了资源。chromedriver则是用于与headless Chrome通信的工具。

    在部署代码时,你可以使用Chrome和chromedriver的headless模式,并将它们的路径配置到生产环境的文件内容中。这样,就可以使用headless Chrome和chromedriver来模拟浏览器行为,而无需安装Chrome浏览器和chromedriver。

    具体操作可参考如下步骤:

    1.安装Chrome浏览器和chromedriver

    建议在开发环境中安装Chrome浏览器和chromedriver,并将它们的路径添加到系统环境变量中。

    2.使用headless Chrome和chromedriver

    在代码中使用headless Chrome和chromedriver,例如:

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(chrome_options=options, executable_path='chromedriver_path')
    

    其中,'chromedriver_path'是chromedriver的路径,需要根据实际情况进行更改。

    3.配置生产环境的文件内容

    在生产环境中,将headless Chrome和chromedriver的路径配置到文件内容中,例如:

    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    options.add_argument('--no-sandbox')
    driver = webdriver.Chrome(
        chrome_options=options, 
        executable_path='/path/to/chromedriver'
    )
    

    其中,'/path/to/chromedriver'需要根据实际情况进行更改。

    通过以上操作,你就可以在生产环境中使用headless Chrome和chromedriver,并模拟浏览器行为。

    2023-06-09 17:21:28
    赞同 展开评论 打赏
  • 在阿里云部署代码的过程中,如果您需要在生产环境中使用 Chrome 和 chromedriver,可以按照以下步骤进行安装和配置:

    1. 登录到您的生产服务器,并通过命令行或图形界面等方式下载并安装 Chrome 浏览器和 chromedriver。具体安装方法因操作系统不同而有所不同,请查阅相关文档或参考官方指南。

    2. 创建或修改您的生产环境文件(如配置文件、脚本等),将 Chrome 和 chromedriver 的路径设置为生产环境中实际的路径。例如,您可以在配置文件中添加以下项:

    [webdriver]
    chrome_driver_path = /usr/local/bin/chromedriver
    
    1. 在部署代码时,将生产环境文件一并上传到生产服务器,并按照需要进行调整和修改。例如,您可以使用 scp 命令将文件从本地上传到远程服务器:
    scp config.ini user@your-server:/path/to/config.ini
    

    需要注意的是,Chrome 和 chromedriver 版本的兼容性问题可能会对您的应用程序造成影响。建议您在开发和测试过程中使用与生产环境相同的版本,并在生产环境中进行严格测试和验证,确保应用程序能够正常运行和稳定工作。

    2023-06-09 15:38:26
    赞同 展开评论 打赏
  • 在阿里云函数计算中,每次部署都是一个新的环境,因此您需要在函数计算中安装 Chrome 和 chromedriver。

    您可以使用函数计算的自定义运行时功能,自定义一个运行时环境,在其中安装 Chrome 和 chromedriver,并将其打包成一个函数包上传到函数计算中。

    具体步骤如下:

    1. 在本地搭建一个与函数计算相同的环境,并在其中安装 Chrome 和 chromedriver。

    2. 将环境打包成一个 zip 文件,并上传到函数计算中。

    3. 在函数计算中创建一个函数,并选择刚刚上传的 zip 文件作为函数包。

    4. 在函数配置中,将自定义运行时设置为刚刚上传的 zip 文件名。

    5. 在函数代码中,使用安装好的 Chrome 和 chromedriver。

    这样,在每次函数部署时,函数计算会自动下载并使用您上传的 zip 文件,其中包含了安装好的 Chrome 和 chromedriver,从而保证了函数在生产环境中的正常运行。

    2023-06-09 15:36:36
    赞同 1 展开评论 打赏
滑动查看更多

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载