-
serverless-chromeをダウンロードして解凍
- 以下の
chromium 64.0.3282.167
で動作確認した - https://github.com/adieuadieu/serverless-chrome/releases/tag/v1.0.0-37
- 以下の
-
chromedriverをダウンロードして解凍
- 以下の
chromedriver_linux64.zip
で動作確認した - https://chromedriver.storage.googleapis.com/index.html?path=2.37/
- 以下の
-
実行権限付与
chmod 777 <ダウンロードしたファイル>
-
chrome
フォルダにダウンロードしたファイルを入れて、zipに固める -
Lambdaレイヤーにzipをアップロード
-
Lambdaレイヤーにseleniumをアップロード
-
Lambda関数に上記2つのレイヤーを追加
-
以下のようなコードで実行できる
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def lambda_handler(event, context):
options = Options()
options.binary_location = '/opt/chrome/headless-chromium'
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--single-process')
options.add_argument('--disable-dev-shm-usage')
browser = webdriver.Chrome('/opt/chrome/chromedriver', chrome_options=options)
browser.get('https://www.google.com')
title = browser.title
browser.close()
browser.quit()
return {"title": title}
参考
https://blog.ikedaosushi.com/entry/2018/12/22/231421
https://qiita.com/nabehide/items/754eb7b7e9fff9a1047d
環境
macOS 10.15.4
Python 3.7.7