faaskeeper icon indicating copy to clipboard operation
faaskeeper copied to clipboard

Offline environment

Open mcopik opened this issue 2 years ago • 2 comments

At the moment, we support deployment and execution at the AWS cloud only. This has several disadvantages: local environment would provide much quicker testing and development, and would allow others to test the code without having to pay for the AWS cloud.

In the past, we tried using serverless-offline packages, but these did not support triggering Lambda invocations from DynamoDB Streams. Fortunately, We added support for SQS invocations. We should develop a new config aws_offline.yml that will use the available offline components from the Serverless framework to deploy and execute FaaSKeeper locally. Since our system is complex and involves several services, we should build and test this iteratively.

  • [ ] Deploy serverless offline Lambda and test that functions can be invoked.
  • [ ] Deploy offline SQS and verify that we can use it to trigger functions.
  • [ ] Deploy offline DynamoDB and check that system state works.
  • [ ] Deploy offline S3 and verify that user data is persisted.
  • [ ] Adjust the client library to use the offline deployment when needed.

mcopik avatar Mar 28 '23 14:03 mcopik

For offline verification of AWS, won't tools such as localstack(https://github.com/localstack/localstack) be more useful? Integration of localstack doesn't seem to be difficult if it is added as an external dependency.

I'd love to contribute to the project, so let me know what do you think about this approach.

useraid avatar Apr 01 '24 05:04 useraid

@useraid Hi! Welcome to FaaSKeeper :-)

I'm fine with both approaches - I have little experience with serverless-offline and no experience with localstack. If you think it's a better choice, then sure!

mcopik avatar Apr 01 '24 12:04 mcopik