spring - aws lambda 函数 chromedriver 不可执行

标签 spring amazon-web-services selenium aws-lambda selenium-chromedriver

我一直被这个错误困扰 "Caused by: java.lang.IllegalStateException: The driver is not executable: /var/task/chromedriver"当我将我的 jar 项目部署到 aws lambda 函数中时。该项目在我的本地机器上运行良好,但由于某种原因,aws 似乎无法执行 chromedriver。
我的 chromedriver 文件放在资源文件夹中。

以下是我的测试配置文件:

@Configuration
public class TestConfig {

    private static final Logger l = LoggerFactory.getLogger(TestConfig.class);

    private String chromeDriver = org.apache.commons.lang.SystemUtils.IS_OS_WINDOWS ? "chromedriver.exe" : "chromedriver" ;

    public WebDriver getDriver(){
        URL resource = getClass().getClassLoader().getResource(chromeDriver);
        String chromePath = null;
        try {
            chromePath = Paths.get(resource.toURI()).toString();
        } catch (URISyntaxException e) {
            l.info("cannot find chromedriver in resources");
        }
        System.setProperty("webdriver.chrome.driver", chromePath);
        return new ChromeDriver();
    }
}

我有 chromedriver 和 chromedriver.exe,我尝试 chmod 777 文件,但没有成功。

最佳答案

Lambda 的限制为 300 秒,内存限制为 1536MB。

尝试在 lambda 函数中启动 chromedriver 是一种非常糟糕的方法。您应该做的是设置 Selenium 网格,然后使用 RemoteWebDriver 在远程机器上启动 Chrome 浏览器

关于spring - aws lambda 函数 chromedriver 不可执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988993/

相关文章:

spring - 相当于SDN4中的template.createRelationBetween

java - 我收到 BeanFactory 错误 : NoSuchBeanDefinitionException and I can't figure out how to solve it

amazon-web-services - 使用 Amazon Web Services Cognito Userpool 时如何记住和自动刷新登录 token ?

amazon-web-services - 使用 boto3 时如何创建具有自定义根卷大小的 aws 实例

javascript - 从文件执行 javascript 函数 Selenium WebDriver Java

java - 如何在 Spring 框架中将多个输入存储到数组中

mysql - 使用 Hibernate DAO 方法插入带有外键的表

amazon-web-services - 如何使用 AWS Lex 提出多个是/否问题?

python - 获取包含特定文本的 td,然后找到其 parent 和 sibling

javascript - 失败 : Cannot read property 'all' of undefined