Open6

AWS CDK を使って Lambda (node.js) の環境で Selenum を動かしたい

hassaku63hassaku63

わからないこと:

  • Selenium って、各言語のラッパーに加えてバイナリファイルも依存があったような
  • Lambda のデプロイパッケージにバンドルするやり方がわからん
    • node_modules に入れておけば同梱されてるのだろうか?だとすれば話は楽だが。
hassaku63hassaku63

selenium-standalone install してみたらちゃんとプロジェクトローカルのパスに入っているらしいことは確認できた。

npx selenium-standalone install
----------
selenium-standalone installation starting
----------

---
selenium install:
from: https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/selenium-server/3.141.59-server.jar
---
chrome install:
from: https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_mac64.zip
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/chromedriver/latest-x64-chromedriver
---
firefox install:
from: https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-macos.tar.gz
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/geckodriver/latest-x64-geckodriver
---
chromiumedge install:
from: https://msedgedriver.azureedge.net/89.0.774.63/edgedriver_mac64.zip
to: /path/to/cdk-project/node_modules/selenium-standalone/.selenium/chromiumedgedriver/latest-x64-msedgedriver
---
File from https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_mac64.zip has already been downloaded
---
File from https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar has already been downloaded
---
File from https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-macos.tar.gz has already been downloaded

[====================] 100%      https://msedgedriver.azureedge.net/89.0.774.63/edgedriver_mac64.zip


-----
selenium-standalone installation finished
-----

あとは 、

  • CDK は node_modules/.bin/ 以下をデプロイ時にバンドルするのかどうか
  • シンボリックリンクを追跡してバンドルできるかどうか

node_modules/.bin/selenium-standalone の実体は node_modules/selenium-standalone/bin/selenium-standalone らしいので、少なくとも実体のバイナリの方は本番の依存関係として定義しておけばパッケージバンドルの処理は CDK にまかせておいて問題なさそう。

node のライブラリから使うには node_modules/.bin/ じゃない方に明示的にパスを通す必要がありそうな気もする。雑にデプロイしてみて検証でいいかもしれない