Skip to content

A tool and framework for Rapid Application Development with AWS Lambda and .NET Core

License

Notifications You must be signed in to change notification settings

smyleeface/LambdaSharpTool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

λ#

LambdaSharp Tool & Framework (v0.3)

Read what's new in the latest release.

The objective of λ# is to accelerate the innovation velocity of serverless solutions. Developers should be able to focus on solving business problems while deploying scalable, observable solutions that follow DevOps best practices.

λ# is a .NET Core 2.x framework and tooling for rapid application development, deployment, and management of AWS Lambda functions and serverless infrastructure. Resources are automatically converted into parameters for easy access by AWS Lambda C# functions. Furthermore, λ# modules are composable by exchanging resource references using the AWS Systems Manager Parameter Store.

When creating a λ# module, you only need to worry about three files:

  • The AWS Lambda C# code
  • The .NET Core project file
  • The λ# module file

Getting Started

Before getting started, you must setup your λ# Environment.

Once setup, creating modules with Lambda functions and deploying them only requires a few steps.

# Create a new λ# module
lash new module MySampleModule

# Add a function to the λ# module
lash new function MyFunction

# Deploy the λ# module
lash deploy

The λ# tool uses a YAML file to compile the C# projects, upload assets, and deploy the CloudFormation stack in one step. The YAML file describes the entire module including the parameters, resources, and functions.

Name: MySampleModule

Version: 1.0

Functions:

 - Name: MyFunction
   Memory: 128
   Timeout: 30

The C# project contains the Lambda handler.

namespace MySampleModule.MyFunction {

    public class FunctionRequest {

        // TODO: add request fields
    }

    public class FunctionResponse {

        // TODO: add response fields
    }

    public class Function : ALambdaFunction<FunctionRequest, FunctionResponse> {

        //--- Methods ---
        public override Task InitializeAsync(LambdaConfig config)
            => Task.CompletedTask;

        public override async Task<FunctionResponse> ProcessMessageAsync(FunctionRequest request, ILambdaContext context) {

            // TODO: add business logic

            return new FunctionResponse();
        }
    }
}

Learn More

  1. Setup λ# Environment (required)
  2. λ# Samples
  3. Module File Reference
  4. Folder Structure Reference
  5. λ# Tool Reference
  6. Release Notes

License

Copyright (c) 2018 MindTouch

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

A tool and framework for Rapid Application Development with AWS Lambda and .NET Core

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.2%
  • Shell 0.8%