SimpleApi
This is a very quick demo of how to create a serverless rest API using AWS Lambda
and .NET 6
. The project is created using the dotnet new
command and the Amazon.Lambda.Templates
NuGet package.
Installing AWS Lambda Templates
Install the AWS Lambda templates for .NET 6 using the following command:
dotnet new -i Amazon.Lambda.Templates
If already installed check the installed templates using the following command:
dotnet new --list
Install Amazon.Lambda.Tools Global Tools if not already installed.
dotnet tool install -g Amazon.Lambda.Tools
If already installed check if new version is available.
dotnet tool update -g Amazon.Lambda.Tools
Creating a new project
Template Name | Short Name | Language | Tags |
---|---|---|---|
Lambda Empty Serverless | serverless.EmptyServerless | [C#],F# | AWS/Lambda/Serverless |
We will create a new project using the serverless.EmptyServerless
template.
dotnet CLI
dotnet new serverless.EmptyServerless --name SimpleApi --output dotnet-rest-api-with-lambda
Rider IDE
Configuring the project
This project’s purpose is only demostrating how to create a serverless rest API using AWS Lambda
and .NET 6
.
We don’t need serverless.template
file. So, we can delete it.
Now we need to configure aws-lambda-tools-defaults.json
file.
We must set function-runtime
to dotnet6
, function-memory-size
to 256
and function-timeout
to 30
.
function-handler
is the name of the class that will handle the request. In this project, we will use SimpleApi::SimpleApi.Functions::Get
as the handler.
First part is the assembly name, second part is the namespace and the class name. Last part is the method name.
Looking at the code
We have a Get
method in Functions
class. This method will handle the request.
public APIGatewayProxyResponse Get(APIGatewayProxyRequest request, ILambdaContext context)
{
return new APIGatewayProxyResponse
{
StatusCode = 200,
Body = "Hello World!",
Headers = new Dictionary<string, string> { { "Content-Type", "text/plain" } }
};
}
Deploying the project
Now that we have created the project, we can deploy it to AWS Lambda. Go to the project directory and run the following command:
dotnet lambda deploy-function
Configuring the Lambda function on AWS Console
We need to configure the Lambda function on AWS Console.
In the Configuration
tab, we need to create a new Function URL
.
The auth type should be NONE
. Then click on Save
.
Congratulations!
You have created a serverless rest API using AWS Lambda
and .NET 6
.