Running 'git' in AWS lambda

前端 未结 3 718
盖世英雄少女心
盖世英雄少女心 2021-02-07 13:03

I am trying to run git in AWS lambda to make a checkout of a repository.

This is my setup:

  • I am using nodejs 4.3
  • I am not using nodegit because I
相关标签:
3条回答
  • 2021-02-07 13:29

    The issue is that you cannot copy just the git binary. You need a portable version of git and even with that you're going to have a bad time because you cannot guarantee that the os the lambda function runs on is going to be compatible with the binary.

    Stepping back, I would just walk away from this approach completely. I would clone and build a package that I would just download pretty much the same way you do downloadDeploymentKeyFromS3Sync.

    0 讨论(0)
  • 2021-02-07 13:34

    Yep, this is definitely possible, I've created a Lambda Layer that achieves just this. No need to mess with any env variables, should work out of the box:

    https://github.com/lambci/git-lambda-layer

    As stated in the README, all you need to do is add a layer with the following ARN:

    arn:aws:lambda:<region>:553035198032:layer:git:<version>
    

    (replace <region> and <version>, check README for latest version)

    0 讨论(0)
  • 2021-02-07 13:43

    You might consider this a non-answer, but I've found the easiest way to run arbitrary binaries from Lambda is... not to. If I cannot do the work from within a platform-independent, non-binary approach, I integrate Docker into the workflow, managing Docker containers from the Lambda function.

    On AWS one way to do this is to use the Elastic Container Service (ECS) to spawn a task that runs git.

    If you stand up a Docker Swarm instance or integrate another Docker-API compatible service such as Rackspace Carina or Joyent's Triton, then you could use a project I personally put together specifically for integrating AWS Lambda with Docker: "Dockaless".

    Good luck!

    0 讨论(0)
提交回复
热议问题