Skip to content

Lambda-based dependency resolver\installer #926

Open

Description

@CoreOxide

Lambda-based dependency resolver\installer

Use Lambda function (specifically - TriggerFunction) to spin up an environment and architecture requested by the user, installs dependencies provided by the user, saves output in a .zip in S3. Uses produced .zip file as Lambda layer, which can now be used for Lambda functions, which includes all requirements needed at runtime.

This continues to build on the RFC to build locally, instead on building using Docker, and the PR for the same.
Except, this time the build process in 100% on AWS infrastructure, and not local on the consumer development environment.
Similar to how esbuild works in aws_cdk.aws_lambda_nodejs.NodejsFunction.

Solution diagram:

Image

POC:
https://github.com/CoreOxide/poc/tree/main/lambda_deps_builder

I propose adding it as a new build method in lambda-python-alpha (aws_cdk.aws_lambda_python_alpha.PythonFunction).

Roles

Role User
Proposed by @CoreOxide
Author(s) @CoreOxide
API Bar Raiser @alias
Stakeholders @alias, @alias, @alias

See RFC Process for details

Workflow

  • Tracking issue created (label: status/proposed)
  • API bar raiser assigned (ping us at #aws-cdk-rfcs if needed)
  • Kick off meeting
  • RFC pull request submitted (label: status/review)
  • Community reach out (via Slack and/or Twitter)
  • API signed-off (label status/api-approved applied to pull request)
  • Final comments period (label: status/final-comments-period)
  • Approved and merged (label: status/approved)
  • Execution plan submitted (label: status/planning)
  • Plan approved and merged (label: status/implementing)
  • Implementation complete (label: status/done)

Author is responsible to progress the RFC according to this checklist, and
apply the relevant labels to this issue so that the RFC table in README gets
updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions