Code Monkey home page Code Monkey logo

pyfilesystem2-aws-lambda-layer's Introduction

pyfilesystem2-aws-lambda-layer

AWS Lambda Layer for Python PyFilesystem2 module.

Purpose

Maybe it seems weird to add a Layer just to do "filesystem" work. Sure, Lambda are small discrete units of work; surely they don't require a complex filesystem handler for Python?

Have you ever grown tired of Lambda's 512 MB /tmp space? Ever hit that limit? Ever wonder how you might get even just a smidge more room?

Did you notice that PyFilesystem2 does mem-fs? S3-fs?

Maybe it won't work. Maybe AWS will notice and shut it down. But I say we try.

Building the Layers

  1. Confirm the build directory is clean.

    $ ls -1 build
    build-pyfs2.sh
  2. Then execute the docker public.ecr.aws/lambda/python images to run the build script.

    docker run --rm -v `pwd`/build:/var/task -it --entrypoint /bin/bash public.ecr.aws/lambda/python:3.6 ./build-pyfs2.sh
    
    docker run --rm -v `pwd`/build:/var/task -it --entrypoint /bin/bash public.ecr.aws/lambda/python:3.7 ./build-pyfs2.sh
    
    docker run --rm -v `pwd`/build:/var/task -it --entrypoint /bin/bash public.ecr.aws/lambda/python:3.8 ./build-pyfs2.sh
    
    docker run --rm -v `pwd`/build:/var/task -it --entrypoint /bin/bash public.ecr.aws/lambda/python:3.9 ./build-pyfs2.sh

Deploy the Layers

Once the layer zip files are created, you can deploy them to your AWS account with the following command:

aws lambda publish-layer-version --layer-name "pyfilesystem2-python36" --description "PyFilesystem2 Module for Python 3.6 Runtime" --license-info "BSD-2-Clause" --compatible-runtimes "python3.6" --zip-file "fileb://build/pyfilesystem2-python3.6.zip"

aws lambda publish-layer-version --layer-name "pyfilesystem2-python37" --description "PyFilesystem2 Module for Python 3.7 Runtime" --license-info "BSD-2-Clause" --compatible-runtimes "python3.7" --zip-file "fileb://build/pyfilesystem2-python3.7.zip"

aws lambda publish-layer-version --layer-name "pyfilesystem2-python38" --description "PyFilesystem2 Module for Python 3.8 Runtime" --license-info "BSD-2-Clause" --compatible-runtimes "python3.8" --zip-file "fileb://build/pyfilesystem2-python3.8.zip"

aws lambda publish-layer-version --layer-name "pyfilesystem2-python39" --description "PyFilesystem2 Module for Python 3.9 Runtime" --license-info "BSD-2-Clause" --compatible-runtimes "python3.9" --zip-file "fileb://build/pyfilesystem2-python3.9.zip"

pyfilesystem2-aws-lambda-layer's People

Contributors

jason-dour avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.