0

このエラーが発生しました"Caused by: java.lang.IllegalStateException: The driver is not executable: /var/task/chromedriver" aws lambda関数にjarプロジェクトをデプロイすると、プロジェクトはローカルマシンで正常に動作しますが、何らかの理由でクロムドライブを実行できないようです。 私のchromedriverファイルはresourcesフォルダに置かれています。続きawsラムダ関数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の両方を持っている、と私は777ファイルをchmodはしようとしましたが、何の成功を持っていません。

+0

zipファイルを作成する前に 'chmod'を実行していても、パーミッションを格納する構造体はzipファイルにはありません(afaik)。 zipファイルをローカルのどこかに展開して確認します。たぶんファイル実行可能ファイル[Javaを使用](https://stackoverflow.com/a/43859098/1695906)にマークすることができますか? –

+0

ラムダ関数自体の中でchmodを呼び出していました。私はラムダ関数にスタンドアロンのjarファイルとして、zipを使用せずに展開しています。私はまたあなたのリンクとsetPosixFilePermissionsでそれをマークしようとしましたが、まだそのエラーが発生しています。 –

+0

もう1つ考えてみましょう:[ラムダ環境が構築されているベースイメージ](http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html)からサーバーを作成し、そのようなマシンでは期待どおりに動作します。 –

答えて

0

ラムダの制限時間は300秒、メモリ制限は1536MBです。

ラムダ関数でクロムドライバを試してみるのは非常に悪い方法です。あなたがしなければならないことは、Seleniumグリッドを設定し、RemoteWebDriverを使ってリモートマシンでChromeブラウザを起動することです。

関連する問題