Azure Functions out-of-process .NET language worker
Перейти к файлу
Fabio Cavalcante 5ff81defb7 Adding basic support for dotnet run 2024-10-21 15:53:36 -07:00
.github Update 01-bug-report.yml (#2405) 2024-04-19 14:02:24 -07:00
.vscode Add vscode config for debugging the worker (#701) 2021-11-05 13:36:10 -07:00
build Delete old pipelines (#2522) 2024-06-11 16:13:22 -07:00
docs Analyzer for Multiple-Output Binding Scenarios with ASP.NET Core Integration (#2706) 2024-10-16 12:38:40 -07:00
eng Fixing path separator character to work with both linux and windows.Build DotnetWorker.Extensions.sln as well for tests 2024-10-21 15:53:32 -07:00
extensions adding FunctionsWebApplicationBuilder 2024-10-21 15:53:08 -07:00
host Bump System.Text.Json from 8.0.4 to 8.0.5 in /host/src/FunctionsNetHost (#2768) 2024-10-11 09:53:16 -07:00
protos/azure-functions-language-worker-protobuf Update to protobuf v1.10.0 (#1774) 2023-07-21 11:33:54 -07:00
samples Removing solution filter files 2024-10-21 15:53:07 -07:00
sdk Adding basic support for dotnet run 2024-10-21 15:53:36 -07:00
src Fixing gRPC project references 2024-10-21 15:53:36 -07:00
test Fixing failing tests on EndpointDataSource tests 2024-10-21 15:53:08 -07:00
tools Disable cosmos emulator for non-Windows OS (#1579) 2023-05-31 15:37:43 -07:00
.editorconfig Minor cleanup 2021-02-01 15:54:24 -08:00
.gitignore ignore rider temp files 2024-10-11 16:23:17 -07:00
CHECKENFORCER Create CHECKENFORCER 2021-12-08 20:51:36 -08:00
CODE_OF_CONDUCT.md Initial CODE_OF_CONDUCT.md commit 2020-07-20 10:59:35 -07:00
Directory.Build.props Add worker extension validation to CI (#2764) 2024-10-11 14:11:54 -07:00
Directory.Build.targets [1ES] Add RepositoryInfo.targets file & update trigger paths (#2468) 2024-05-20 10:28:55 -07:00
DotNetWorker.Extensions.sln Updating project structure to fix extensions, samples and core package dependencies 2024-10-21 15:51:27 -07:00
DotNetWorker.Samples.sln Updating project structure to fix extensions, samples and core package dependencies 2024-10-21 15:51:27 -07:00
DotNetWorker.sln Additional dependencies fixes 2024-10-21 15:53:08 -07:00
LICENSE Initial LICENSE commit 2020-07-20 10:59:36 -07:00
NuGet.Config [1ES] Add 1ES pipeline files (#2466) 2024-05-17 16:12:46 -07:00
README.md Update README.md 2023-05-10 11:20:40 -07:00
SECURITY.md Initial SECURITY.md commit 2020-07-20 10:59:38 -07:00
global.json Adding net9.0 TFM (#2615) 2024-10-21 15:50:51 -07:00
key.snk Strong name signing assemblies 2020-12-08 17:56:37 -08:00
release_notes.md Updating Azure.Core and Extension dependencies to the latest (#2638) 2024-08-01 11:19:20 -07:00
run-e2e-tests.ps1 Adding E2E test infrastructure and Cosmos E2E test (#100) 2021-02-03 15:38:28 -08:00
setup-e2e-tests.ps1 Updating end-to-end run targets 2024-10-21 15:53:08 -07:00

README.md

Azure Functions Logo

Branch Status
main Build Status
release/1.x Build Status

Azure Functions .NET Worker

Welcome to the Azure Functions .NET Worker Repository. Introduced in 2020, Azure Functions' Isolated Worker Model moves function execution into a separate language worker process. Isolating function execution from the Azure Functions runtime allows you to have full control over your application's dependencies and easily incorporate advanced .NET features such as middleware and dependency injection.

A .NET Isolated worker process function works differently from a .NET in-process function. For .NET Isolated, you build an executable that imports the .NET Isolated language worker as a NuGet package. Your app includes a Program.cs that starts the worker.

Binding Model

.NET Isolated introduces a new binding model, slightly different from the binding model exposed in .NET in-process Azure Functions. More information can be found here. Please review our samples for usage information.

Middleware

The Azure Functions .NET Isolated supports middleware registration, following a model similar to what exists in ASP.NET and giving you the ability to inject logic into the invocation pipeline, pre and post function executions.

Samples

You can find samples on how to use different features of the .NET Worker under samples (link).

Create and run .NET Isolated Worker functions

Please see our Guide for running C# Azure Functions in an isolated worker process for information on how to develop, debug and deploy using the Isolated Worker model.

Running E2E Tests

Requirements

Instructions

  1. Run setup-e2e-tests.ps1. Once the build succeeds and the emulators are started correctly, you are done with the setup.
  2. Run run-e2e-tests.ps1 to run the tests or use the Test Explorer in VS.

Note: Do not add the switch to skip the core-tools download when running set-up-e2e-tests.ps1 as it will lead to an incomplete setup.

Deploying to Azure

Create the Azure resources

  1. To deploy the app, first ensure that you've installed the Azure CLI.

  2. Login to the CLI.

    az login
    
  3. If necessary, use az account set to select the subscription you want to use.

  4. Create a resource group, Storage account, and Azure Functions app. If you would like to use an existing Windows .NET Core 3 function app, please skip this step.

    az group create --name AzureFunctionsQuickstart-rg --location westeurope
    az storage account create --name <STORAGE_NAME> --location westeurope --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
    az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime dotnet-isolated --functions-version 3 --name <APP_NAME> --storage-account <STORAGE_NAME>
    

Deploy the app

  1. Ensure you are in your functions project folder.

  2. Deploy the app.

    func azure functionapp publish <APP_NAME>
    

Known issues

  • Optimizations are not all in place in the consumption plan and you may experience longer cold starts.

Feedback

Please create issues in this repo. Thanks!

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.