NL.Serverless.AspNetCore.Template 3.0.11

There is a newer version of this package available.
See the version list below for details.
dotnet new install NL.Serverless.AspNetCore.Template::3.0.11                
This package contains a .NET Template Package you can call from the shell/command line.

NL.Serverless.AspNetCore

This repo provides code for hosting an AspNet Core App inside an Azure Function V3 HTTP Trigger without the use of TestServer.

I combined the solution of <a href="https://github.com/NicklausBrain">NicklausBrain</a> (original repo can be found <a href="https://github.com/NicklausBrain/serverless-core-api">here</a>) with the <a href="https://docs.microsoft.com/en-US/azure/azure-functions/functions-dotnet-dependency-injection">DI support for azure functions</a>. This provides a way to avoid initalizing the AspNet Core App with every incoming request.

Prerequisites

  1. .Net Core SDK >= 3.1.100
  2. Azure Function Core Tools v3
npm install -g azure-functions-core-tools@3

Instructions

  1. Install the project template for dotnet and create a new project.
dotnet new --install NL.Serverless.AspNetCore.Template
dotnet new serverless-aspnetcore -n Your.New.ProjectName
  1. Happy coding your AspNet Core WebApp.
  2. Run the Azure Function hosting the web app
func host start -build

Application Insights / Logs

In order to see the logs of the Asp.Net Core app inside the log stream of Application Insights from the functions app you need to add the following lines:

  1. Add the package reference of Microsoft.ApplicationInsights.AspNetCore to the .csproj of your web app

    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.14.0" />

  2. Register the Applications Insights services in the Statup.cs of your web app

    services.AddApplicationInsightsTelemetry();
    

Please note that Application Insights has it´s own logging levels configured in the appsettings.json. You can find the documentation here.

Here is an example:

  ...
  "Logging": {
    "LogLevel": {
      "Default": "Information"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  },
  ...

If you want to use another instance of Application Insights for the web app you need to add the Instrumation Key in the appsettings.json:

   ...
      "ApplicationInsights": {
        "InstrumentationKey": "putinstrumentationkeyhere"
      },
   ...

Samples

Host the ASP.NET Boilerplate sample in an Azure Function

Credits

The basic idea for this is from this repo: https://github.com/NicklausBrain/serverless-core-api

Thanks <a href="https://github.com/NicklausBrain">NicklausBrain</a>.

  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.1.0 742 8/26/2021
5.0.0 2,114 4/12/2021
3.0.11 513 1/30/2021
3.0.9 525 7/31/2020
3.0.8 468 7/8/2020
3.0.7.2 488 6/13/2020
3.0.7.1 544 5/25/2020
3.0.7 510 5/9/2020
3.0.5 498 3/20/2020
3.0.3 558 1/30/2020
3.0.2 541 1/12/2020
1.0.2 517 10/20/2019
1.0.1 508 10/17/2019
1.0.0 518 10/13/2019