Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드
전제
・Docker 사용할 수 있는 상태
・AWS 서비스 사용할 수 있는 상태
①amazon linux 이미지 획득
docker pull amazonlinux
②Dockerfile을 작성
FROM amazonlinux:latest
RUN yum install -y python3 zip
RUN mkdir /home/deploy
③docker-compose.yml 만들기
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r bs4.zip python"
④ 디렉토리 작성
이번에는 Dockerfile과 yml에 나열된 디렉토리 이름과 함께 deploy라는 디렉토리와 그 아래에 여기에 결정된 python이라는 디렉토리를 만듭니다.
⑤ pip install 하는 라이브러리를 기술한 requirement.txt 를 작성해 deploy 디렉토리 아래에 둔다.
이번에는 웹 스크래핑에서 사용하는 bs4와 requests를 설명합니다. 우선은 bs4만.
requirements.textbs4
⑥ 디렉토리 구성 확인
$ tree
├── Dockerfile
├── deploy
│ ├── python
│ └── requirements.txt
└── docker-compose.yml
⑦ 람다 레이어에 업로드할 패키지 가져오기
다음을 명령 실행합니다.
docker-compose up --build
⑧ 또 하나의 패키지를 만들기 위해 ③과 ⑤를 편집하여 ⑦을 실행(필요한 패키지가 하나만이라면 불필요)
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requirements.textrequests
docker-compose up --build
⑨ 레이어 만들기
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker pull amazonlinux
②Dockerfile을 작성
FROM amazonlinux:latest
RUN yum install -y python3 zip
RUN mkdir /home/deploy
③docker-compose.yml 만들기
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r bs4.zip python"
④ 디렉토리 작성
이번에는 Dockerfile과 yml에 나열된 디렉토리 이름과 함께 deploy라는 디렉토리와 그 아래에 여기에 결정된 python이라는 디렉토리를 만듭니다.
⑤ pip install 하는 라이브러리를 기술한 requirement.txt 를 작성해 deploy 디렉토리 아래에 둔다.
이번에는 웹 스크래핑에서 사용하는 bs4와 requests를 설명합니다. 우선은 bs4만.
requirements.textbs4
⑥ 디렉토리 구성 확인
$ tree
├── Dockerfile
├── deploy
│ ├── python
│ └── requirements.txt
└── docker-compose.yml
⑦ 람다 레이어에 업로드할 패키지 가져오기
다음을 명령 실행합니다.
docker-compose up --build
⑧ 또 하나의 패키지를 만들기 위해 ③과 ⑤를 편집하여 ⑦을 실행(필요한 패키지가 하나만이라면 불필요)
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requirements.textrequests
docker-compose up --build
⑨ 레이어 만들기
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FROM amazonlinux:latest
RUN yum install -y python3 zip
RUN mkdir /home/deploy
docker-compose.yml
version: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r bs4.zip python"
④ 디렉토리 작성
이번에는 Dockerfile과 yml에 나열된 디렉토리 이름과 함께 deploy라는 디렉토리와 그 아래에 여기에 결정된 python이라는 디렉토리를 만듭니다.
⑤ pip install 하는 라이브러리를 기술한 requirement.txt 를 작성해 deploy 디렉토리 아래에 둔다.
이번에는 웹 스크래핑에서 사용하는 bs4와 requests를 설명합니다. 우선은 bs4만.
requirements.textbs4
⑥ 디렉토리 구성 확인
$ tree
├── Dockerfile
├── deploy
│ ├── python
│ └── requirements.txt
└── docker-compose.yml
⑦ 람다 레이어에 업로드할 패키지 가져오기
다음을 명령 실행합니다.
docker-compose up --build
⑧ 또 하나의 패키지를 만들기 위해 ③과 ⑤를 편집하여 ⑦을 실행(필요한 패키지가 하나만이라면 불필요)
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requirements.textrequests
docker-compose up --build
⑨ 레이어 만들기
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 웹 스크래핑에서 사용하는 bs4와 requests를 설명합니다. 우선은 bs4만.
requirements.text
bs4
⑥ 디렉토리 구성 확인
$ tree
├── Dockerfile
├── deploy
│ ├── python
│ └── requirements.txt
└── docker-compose.yml
⑦ 람다 레이어에 업로드할 패키지 가져오기
다음을 명령 실행합니다.
docker-compose up --build
⑧ 또 하나의 패키지를 만들기 위해 ③과 ⑤를 편집하여 ⑦을 실행(필요한 패키지가 하나만이라면 불필요)
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requirements.textrequests
docker-compose up --build
⑨ 레이어 만들기
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ tree
├── Dockerfile
├── deploy
│ ├── python
│ └── requirements.txt
└── docker-compose.yml
다음을 명령 실행합니다.
docker-compose up --build
⑧ 또 하나의 패키지를 만들기 위해 ③과 ⑤를 편집하여 ⑦을 실행(필요한 패키지가 하나만이라면 불필요)
docker-compose.ymlversion: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requirements.textrequests
docker-compose up --build
⑨ 레이어 만들기
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: '2'
services:
app:
build: .
volumes:
- './deploy:/home/deploy'
command: >
bash -c "pip3 install -r /home/deploy/requirements.txt -t /home/deploy/python &&
cd /home/deploy &&
/usr/bin/zip -r requests.zip python"
requests
docker-compose up --build
⑧까지 만든 패키지를 업로드합니다.
※런타임은 3.7 이하로 합니다. 3.8 이상은 amazonlinux2가 아니면 안 되므로 본 기사의 대상외입니다.
⑩ 레이어 추가
방금 전 ⑨로 만든 레이어를 움직이려는 Lambda 함수에 추가합니다.
유형은 사용자 지정 레이어에서 선택합니다.
⑪Lambda를 움직여 보자
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NoOne/items/dedcc0f21c204195821b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선은 레이어를 만들지 않았을 때의 실패 예를 봐 주세요. bs4와 requests는 원래 Lambda에서 사용할 수 없으므로 오류가 발생합니다.
이어서 레이어를 추가한 성공 예입니다. 이번에는 라이브러리가 import되어 있기 때문에, 목적의 입소문 스크래핑이 되어 있습니다.
Reference
이 문제에 관하여(Docker로 AmazonLinux 환경을 구축하고 거기에 설치한 Python 라이브러리를 Lambda 레이어로 업그레이드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NoOne/items/dedcc0f21c204195821b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)