Chrome headlessをLambdaで動かす際の依存解消にCodebuildを使う
はじめに
AWS LambdaでSeleniumを動かしたいというところに以下の記事を発見
https://qiita.com/nabehide/items/754eb7b7e9fff9a1047d
seleniumの依存を解消するのにどのみちAWSなのだからと、Codebuildで環境レスを試す
前提
- CodeBuildから読めるソースコード保持先(CodeCommit、Github等)
- CodeBuild結果の出力先S3
- 注意 すべてのリージョンは揃えておくこと
- CodeBuildを設定できるだけのIAM権限
ソースの準備
- ビルドスペックをソースディレクトリルートに用意
serverless-chromeとchromedriver、pip(selenium)はこれで依存解決をする。
buildspec.yml
version: 0.2
phases:
install:
commands:
- mkdir -p bin/
- pip install --upgrade pip
pre_build:
commands:
- pip install -r requirements.txt -t .
- curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip -o headless-chromium.zip
- unzip headless-chromium.zip -d bin/
- rm headless-chromium.zip
- curl -SL https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip -o chromedriver.zip
- unzip chromedriver.zip -d bin/
- rm chromedriver.zip
post_build:
commands:
- rm -rf .git/
- rm .gitignore
artifacts:
type: zip
files:
- '**/*'
- 注意 すべてのリージョンは揃えておくこと
- ビルドスペックをソースディレクトリルートに用意
serverless-chromeとchromedriver、pip(selenium)はこれで依存解決をする。
version: 0.2
phases:
install:
commands:
- mkdir -p bin/
- pip install --upgrade pip
pre_build:
commands:
- pip install -r requirements.txt -t .
- curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip -o headless-chromium.zip
- unzip headless-chromium.zip -d bin/
- rm headless-chromium.zip
- curl -SL https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip -o chromedriver.zip
- unzip chromedriver.zip -d bin/
- rm chromedriver.zip
post_build:
commands:
- rm -rf .git/
- rm .gitignore
artifacts:
type: zip
files:
- '**/*'
- lambda_function.py 作成
参照元を参考に作る
CodeBuildの設定
※設定画面の見出しごとに見出し
プロジェクトの設定
プロジェクト名
お好みで
ソース
ソースプロバイダ
GitHub
リポジトリ
GitHubで作ったときのPublic/Privateに合わせて設定
リポジトリのURL
ソースの準備で準備したソースが入ってるリポジトリ
環境
環境イメージ
カスタムイメージ
※ここでLambdaの実行環境がAmazonLinuxと開発者ガイド に記載があるの環境を合わせる
環境タイプ
- Linux
- その他の場所
- aws/codebuild/eb-python-3.4-amazonlinux-64:2.1.6
サービスロール
お好みで
Buildspec
ビルド仕様
buildspec.yml(デフォルト)
アーティファクト
タイプ
Amazon S3
バケット名
前提で準備したS3
アーティファクトのパッケージ化
zip
使い方
S3にzipが作られるのでそのURLをそのままLambdaの関数コードへ投入してもよし、DLしてもよし
参考先
Author And Source
この問題について(Chrome headlessをLambdaで動かす際の依存解消にCodebuildを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/TAC_yacht/items/9bb1b98ce6e3015a0b6a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .