{"id":13621612,"url":"https://github.com/aws/aws-lambda-dotnet","last_synced_at":"2026-02-04T22:06:06.782Z","repository":{"id":38127775,"uuid":"73510119","full_name":"aws/aws-lambda-dotnet","owner":"aws","description":"Libraries, samples and tools to help .NET Core developers develop AWS Lambda functions.","archived":false,"fork":false,"pushed_at":"2025-05-06T15:18:39.000Z","size":63733,"stargazers_count":1616,"open_issues_count":94,"forks_count":489,"subscribers_count":100,"default_branch":"master","last_synced_at":"2025-05-07T07:07:23.937Z","etag":null,"topics":["aws","aws-apigateway","aws-lambda","netcore","serverless"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-11-11T20:43:34.000Z","updated_at":"2025-04-29T01:39:02.000Z","dependencies_parsed_at":"2023-10-20T18:10:06.411Z","dependency_job_id":"ef002819-d36e-4706-b27b-b4756b28c7d2","html_url":"https://github.com/aws/aws-lambda-dotnet","commit_stats":{"total_commits":1534,"total_committers":164,"mean_commits":9.353658536585366,"dds":0.3813559322033898,"last_synced_commit":"50d3312a7a4b1eb3292894a1a0073603b549795b"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-lambda-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-lambda-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-lambda-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-lambda-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws","download_url":"https://codeload.github.com/aws/aws-lambda-dotnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101588,"owners_count":22014907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-apigateway","aws-lambda","netcore","serverless"],"created_at":"2024-08-01T21:01:08.633Z","updated_at":"2026-02-04T22:06:06.776Z","avatar_url":"https://github.com/aws.png","language":"C#","readme":"# AWS Lambda for .NET\n\nRepository for the AWS NuGet packages and Blueprints to support writing AWS Lambda functions using .NET Core.\n\nFor a history of releases view the [release change log](CHANGELOG.md)\n\n## Table of Contents\n- [AWS Lambda for .NET Core ![Gitter](https://gitter.im/aws/aws-lambda-dotnet?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)](#aws-lambda-for-net-core-img-srchttpsbadgesgitterimjoin20chatsvg-altgitter)\n  - [Table of Contents](#table-of-contents)\n  - [NuGet Packages](#nuget-packages)\n    - [Events](#events)\n    - [Amazon.Lambda.Tools](#amazonlambdatools)\n      - [Global Tool Migration](#global-tool-migration)\n        - [Migrating from DotNetCliToolReference](#migrating-from-dotnetclitoolreference)\n    - [Amazon.Lambda.Annotations](#amazonlambdaannotations)\n    - [Amazon.Lambda.AspNetCoreServer](#amazonlambdaaspnetcoreserver)\n    - [Amazon.Lambda.TestUtilities](#amazonlambdatestutilities)\n  - [Blueprints](#blueprints)\n    - [Dotnet CLI Templates](#dotnet-cli-templates)\n    - [Yeoman (Deprecated)](#yeoman-deprecated)\n  - [Getting Help](#getting-help)\n  - [Feedback and Contributing](#feedback-and-contributing)\n\n\n## NuGet Packages\nThis repo contains a number of different tools and libraries to support development of Lambda functions using .NET. These packages have individual README docs outlining specific information for that particular package. These packages are cataloged here.\n\n### Events\n\nThis packages in this folder contains classes that can be used as input types for Lambda functions that process various AWS events.\n\nThese are the packages and their README.md files:\n\n* [Amazon.Lambda.APIGatewayEvents](Libraries/src/Amazon.Lambda.APIGatewayEvents) - [README.md](Libraries/src/Amazon.Lambda.APIGatewayEvents/README.md)\n* [Amazon.Lambda.ApplicationLoadBalancerEvents](Libraries/src/Amazon.Lambda.ApplicationLoadBalancerEvents) - [README.md](Libraries/src/Amazon.Lambda.ApplicationLoadBalancerEvents/README.md)\n* [Amazon.Lambda.CloudWatchLogsEvents](Libraries/src/Amazon.Lambda.CloudWatchLogsEvents) - [README.md](Libraries/src/Amazon.Lambda.CloudWatchLogsEvents/README.md)\n* [Amazon.Lambda.CognitoEvents](Libraries/src/Amazon.Lambda.CognitoEvents) - [README.md](Libraries/src/Amazon.Lambda.CognitoEvents/README.md)\n* [Amazon.Lambda.ConfigEvents](Libraries/src/Amazon.Lambda.ConfigEvents) - [README.md](Libraries/src/Amazon.Lambda.ConfigEvents/README.md)\n* [Amazon.Lambda.DynamoDBEvents](Libraries/src/Amazon.Lambda.DynamoDBEvents) - [README.md](Libraries/src/Amazon.Lambda.DynamoDBEvents/README.md)\n* [Amazon.Lambda.LexEvents](Libraries/src/Amazon.Lambda.LexEvents) - [README.md](Libraries/src/Amazon.Lambda.LexEvents/README.md)\n* [Amazon.Lambda.KinesisAnalyticsEvents](Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents) - [README.md](Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents/README.md)\n* [Amazon.Lambda.KinesisEvents](Libraries/src/Amazon.Lambda.KinesisEvents) - [README.md](Libraries/src/Amazon.Lambda.KinesisEvents/README.md)\n* [Amazon.Lambda.KinesisFirehoseEvents](Libraries/src/Amazon.Lambda.KinesisFirehoseEvents) - [README.md](Libraries/src/Amazon.Lambda.KinesisFirehoseEvents/README.md)\n* [Amazon.Lambda.S3Events](Libraries/src/Amazon.Lambda.S3Events) - [README.md](Libraries/src/Amazon.Lambda.S3Events/README.md)\n* [Amazon.Lambda.SimpleEmailEvents](Libraries/src/Amazon.Lambda.SimpleEmailEvents) - [README.md](Libraries/src/Amazon.Lambda.SimpleEmailEvents/README.md)\n* [Amazon.Lambda.SNSEvents](Libraries/src/Amazon.Lambda.SNSEvents) - [README.md](Libraries/src/Amazon.Lambda.SNSEvents/README.md)\n* [Amazon.Lambda.SQSEvents](Libraries/src/Amazon.Lambda.SQSEvents) - [README.md](Libraries/src/Amazon.Lambda.SQSEvents/README.md)\n* [Amazon.Lambda.KafkaEvents](Libraries/src/Amazon.Lambda.KafkaEvents) - [README.md](Libraries/src/Amazon.Lambda.KafkaEvents/README.md)\n* [Amazon.Lambda.AppSyncEvents](Libraries/src/Amazon.Lambda.AppSyncEvents) - [README.md](Libraries/src/Amazon.Lambda.AppSyncEvents/README.md)\n\n### Amazon.Lambda.Tools\n\nPackage adds commands to the dotnet cli that can be used to manage Lambda functions including deploying a function from the dotnet cli. \nFor more information see the [README.md](Libraries/src/Amazon.Lambda.Tools/README.md) file for Amazon.Lambda.Tools.\n\n#### Global Tool Migration\n\nAs of September 10th, 2018 Amazon.Lambda.Tools has migrated to be .NET Core [Global Tools](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools).\nAs part of the migration the version number was set to 3.0.0.0\n\nTo install Amazon.Lambda.Tools use the **dotnet tool install** command.\n```\ndotnet tool install -g Amazon.Lambda.Tools\n```\n\nTo update to the latest version of Amazon.Lambda.Tools use the **dotnet tool update** command.\n```\ndotnet tool update -g Amazon.Lambda.Tools\n```\n\n##### Migrating from DotNetCliToolReference\n\nTo migrate an existing project away from the older project tool, you need to edit your project file and remove the **DotNetCliToolReference** for the Amazon.Lambda.Tools package. For example, let's look at an existing Lambda project file.\n```xml\n\u003cProject Sdk=\"Microsoft.NET.Sdk\"\u003e\n  \u003cPropertyGroup\u003e\n    \u003cTargetFramework\u003enetcoreapp2.1\u003c/TargetFramework\u003e\n    \u003cGenerateRuntimeConfigurationFiles\u003etrue\u003c/GenerateRuntimeConfigurationFiles\u003e\n\n    \u003c-- The new property indicating to AWS Toolkit for Visual Studio this is a Lambda project --\u003e\n    \u003cAWSProjectType\u003eLambda\u003c/AWSProjectType\u003e\n  \u003c/PropertyGroup\u003e\n  \n  \u003cItemGroup\u003e\n    \u003c-- This line needs to be removed --\u003e\n    \u003cDotNetCliToolReference Include=\"Amazon.Lambda.Tools\" Version=\"2.2.0\" /\u003e\n  \u003c/ItemGroup\u003e\n\n  \u003cItemGroup\u003e\n    \u003cPackageReference Include=\"Amazon.Lambda.Core\" Version=\"1.0.0\" /\u003e\n    \u003cPackageReference Include=\"Amazon.Lambda.Serialization.Json\" Version=\"2.1.0\" /\u003e\n  \u003c/ItemGroup\u003e\n\u003c/Project\u003e\n```\nTo migrate this project, you need to delete the **DotNetCliToolReference** element, including **Amazon.Lambda.Tools**. If you don't remove this line, the older project tool version of **Amazon.Lambda.Tools** will be used instead of an installed Global Tool.\n\nThe AWS Toolkit for Visual Studio before .NET Core 2.1 would look for the presence of **Amazon.Lambda.Tools** in the project file to determine whether to show the Lambda deployment menu item. Because we knew we were going to switch to Global Tools, and the reference to **Amazon.Lambda.Tools** in the project was going away, we added the **AWSProjectType** property to the project file. The current version of the AWS Toolkit for Visual Studio now looks for either the presence of **Amazon.Lambda.Tools** or the **AWSProjectType** set to **Lambda**. Make sure when removing the **DotNetCliToolReference** that your project file has the **AWSProjectType** property to continue deploying with the AWS Toolkit for Visual Studio.\n\n### Amazon.Lambda.Annotations\n\nThe Lambda Annotations library allows C# functions to use .NET attributes for a more idiomatic experience\nwriting Lambda functions. This includes dependency injection integration, simplified access to Lambda event\ninformation and automatic synchronization with CloudFormation template.\nFor more information see the [README.md](Libraries/src/Amazon.Lambda.Annotations/README.md) file for Amazon.Lambda.Annotations.\n\n### Amazon.Lambda.AspNetCoreServer\n\nPackage makes it easy to run ASP.NET Core Web API applications as Lambda functions.\nFor more information see the [README.md](Libraries/src/Amazon.Lambda.AspNetCoreServer/README.md) file for Amazon.Lambda.AspNetCoreServer.\n\n### Amazon.Lambda.TestUtilities\n\nPackage includes test implementation of the interfaces from Amazon.Lambda.Core and helper methods to help in locally testing.\nFor more information see the [README.md](Libraries/src/Amazon.Lambda.TestUtilities/README.md) file for Amazon.Lambda.TestUtilities.\n\n## Blueprints\n\nBlueprints in this repository are .NET Core Lambda functions that can used to get started. In Visual Studio the Blueprints are available when creating a new project and selecting the AWS Lambda Project.\n\n\n### Dotnet CLI Templates\n\nNew .NET Core projects can be created with the **dotnet new** command. By \ninstalling the **Amazon.Lambda.Templates** NuGet package the AWS Lamdba blueprints \ncan be created from the **dotnet new** command. To install the template execute the following command:\n```\ndotnet new -i \"Amazon.Lambda.Templates::*\"\n```\n\nThe ::* on the end of the command indicates the latest version of the NuGet package.\n\nTo see a list of the Lambda templates execute **dotnet new list --author AWS**\n\n```\n\u003e dotnet new list --author AWS              \n\nTemplate Name                                                                         Short Name                                    Language  Tags                 \n------------------------------------------------------------------------------------  --------------------------------------------  --------  ---------------------\nEmpty Top-level Function                                                              lambda.EmptyTopLevelFunction                  [C#]      AWS/Lambda/Serverless\n\nLambda Annotations Framework (Preview)                                                serverless.Annotations                        [C#]      AWS/Lambda/Serverless\n\nLambda ASP.NET Core Minimal API                                                       serverless.AspNetCoreMinimalAPI               [C#]      AWS/Lambda/Serverless\n\nLambda ASP.NET Core Web API                                                           serverless.AspNetCoreWebAPI                   [C#],F#   AWS/Lambda/Serverless\n\nLambda ASP.NET Core Web API (.NET 6 Container Image)                                  serverless.image.AspNetCoreWebAPI             [C#],F#   AWS/Lambda/Serverless\n\nLambda ASP.NET Core Web Application with Razor Pages                                  serverless.AspNetCoreWebApp                   [C#]      AWS/Lambda/Serverless\n\nLambda Custom Runtime Function (.NET 7)                                               lambda.CustomRuntimeFunction                  [C#],F#   AWS/Lambda/Function  \n\nLambda Detect Image Labels                                                            lambda.DetectImageLabels                      [C#],F#   AWS/Lambda/Function\n\nLambda Empty Function                                                                 lambda.EmptyFunction                          [C#],F#   AWS/Lambda/Function\n\nLambda Empty Function (.NET 7 Container Image)                                        lambda.image.EmptyFunction                    [C#],F#   AWS/Lambda/Function\n\nLambda Empty Serverless                                                               serverless.EmptyServerless                    [C#],F#   AWS/Lambda/Serverless\n\nLambda Empty Serverless (.NET 7 Container Image)                                      serverless.image.EmptyServerless              [C#],F#   AWS/Lambda/Serverless\n\nLambda Function project configured for deployment using .NET 7's Native AOT feature.  lambda.NativeAOT                              [C#],F#   AWS/Lambda/Function\n\nLambda Giraffe Web App                                                                serverless.Giraffe                            F#        AWS/Lambda/Serverless\n\nLambda Simple Application Load Balancer Function                                      lambda.SimpleApplicationLoadBalancerFunction  [C#]      AWS/Lambda/Function\n\nLambda Simple DynamoDB Function                                                       lambda.DynamoDB                               [C#],F#   AWS/Lambda/Function\n\nLambda Simple Kinesis Firehose Function                                               lambda.KinesisFirehose                        [C#]      AWS/Lambda/Function\n\nLambda Simple Kinesis Function                                                        lambda.Kinesis                                [C#],F#   AWS/Lambda/Function\n\nLambda Simple S3 Function                                                             lambda.S3                                     [C#],F#   AWS/Lambda/Function\n\nLambda Simple SNS Function                                                            lambda.SNS                                    [C#]      AWS/Lambda/Function\n\nLambda Simple SQS Function                                                            lambda.SQS                                    [C#]      AWS/Lambda/Function\n\nLex Book Trip Sample                                                                  lambda.LexBookTripSample                      [C#]      AWS/Lambda/Function\n\nOrder Flowers Chatbot Tutorial                                                        lambda.OrderFlowersChatbot                    [C#]      AWS/Lambda/Function\n\nServerless Detect Image Labels                                                        serverless.DetectImageLabels                  [C#],F#   AWS/Lambda/Serverless\n\nServerless project configured for deployment using .NET 7's Native AOT feature.       serverless.NativeAOT                          [C#],F#   AWS/Lambda/Serverless\n\nServerless Simple S3 Function                                                         serverless.S3                                 [C#],F#   AWS/Lambda/Serverless\n\nServerless WebSocket API                                                              serverless.WebSocketAPI                       [C#]      AWS/Lambda/Serverless\n\nStep Functions Hello World                                                            serverless.StepFunctionsHelloWorld            [C#],F#   AWS/Lambda/Serverless\n```\n\nTo get details about a template, you can use the help command.\n\n**dotnet new lambda.EmptyFunction --help**\n\n```\nTemplate Instantiation Commands for .NET Core CLI.                                                                                          \n                                                                                                                                           \nLambda Empty Function (C#)                                                                                                                  \nAuthor: AWS                                                                                                                                 \nOptions:                                                                                                                                    \n  -p|--profile  The AWS credentials profile set in aws-lambda-tools-defaults.json and used as the default profile when interacting with AWS.\n                string - Optional                                                                                                           \n                                                                                                                                           \n  -r|--region   The AWS region set in aws-lambda-tools-defaults.json and used as the default region when interacting with AWS.              \n                string - Optional  \n```\n\nThe templates take two optional parameters to set the profile and region. These values are written to the aws-lambda-tools-default.json.\n\nTo create a function, run the following command\n\n```\ndotnet new lambda.EmptyFunction --name BlogFunction --profile default --region us-east-2\n```\n\n### Yeoman (Deprecated)\n\nThe Yeoman generators have been deprecated in favor of the new **dotnet new** templates. They will not be migrated from the older project.json based project system.\n\n## Getting Help\nTo learn more about the various packages in this repo, please reference our [Learning Resources](./Docs/Learning_Resources.md) document. In particular, please be sure to read through the official [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).\n\nIf those resources are not sufficient to answer your question or resolve your issue, please feel free to open an [issue](https://github.com/aws/aws-lambda-dotnet/issues/new/choose) on this repo.\n\n## Feedback and Contributing\nWe welcome community contributions to our codebase and tools! If you would like to contribute, please read through the [CONTRIBUTING.md](./CONTRIBUTING.md) document (our contribution guide) and check issues and open pull requests to ensure that the fix/feature you want to contribute is not already in development.\n","funding_links":[],"categories":["C#","C# #"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws%2Faws-lambda-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws%2Faws-lambda-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws%2Faws-lambda-dotnet/lists"}