Jak utworzyć Lambda Layer w Pythonie
W krótkim czasie dwa razy pokazywałem jak utworzyć Lambda Layer w Pythonie, postanowiłem więc utworzyć krótki tutorial.
Mało tekstu, trochę kodu i mamy działające rozwiązanie. Więcej pisałem o tym już wcześniej.
Jak utworzyć Lambda Layer w Pythonie
Tym razem nie dane CI/CD, jak najszybciej i najłatwiej dążymy do celu.
Na początek tworzymy dwie rzeczy. Pierwszą jest katalog, w którym umieścimy nasze „rzeczy”, które chcemy udostępnić w warstwie. Tworzymy go więc mkdir python
Drugą jest plik requirements.txt touch requirements.txt
, do którego wpisujemy komponenty, które chcemy umieścić w naszej warstwie, np.:
requests boto3==1.21.15
Mamy utworzony plik requirements.txt możemy więc pobrać lokalnie potrzebne paczki. Robimy to za pomocą polecenia
pip3 install -r requirements.txt --target="./python"
Pakujemy zawartość katalogu python za pomocą polecenia zip -r requests-boto-layer.zip ./python
i możemy opublikować, czyli zdeployować w AWS naszą warstwę.
aws lambda publish-layer-version \ --layer-name "requests-boto-layer" \ --description "Requests and boto layer" \ --license-info "MIT" \ --zip-file fileb://requests-boto-layer.zip \ --compatible-runtimes python3.9
W odpowiedzi dostaniemy między innymi ARN do naszej warstwy
Możemy go także od razu, w trakcie deploymentu, zapisać np. do zmiennej
LAYER_ARN=$(aws lambda publish-layer-version \ --layer-name "requests-boto-layer" \ --description "Requests and boto layer" \ --license-info "MIT" \ --zip-file fileb://requests-boto-layer.zip \ --compatible-runtimes python3.9 \ --output text \ --query LayerVersionArn)
i używać.
Mamy gotowy Layer, gotowy do wykorzystania w naszych funkcjach Lambda.