{"id":17449550,"url":"https://github.com/jplane/azure-functions-custom-handler","last_synced_at":"2025-08-29T13:26:00.887Z","repository":{"id":95098209,"uuid":"327929144","full_name":"jplane/azure-functions-custom-handler","owner":"jplane","description":"Simple custom handler example in C#","archived":false,"fork":false,"pushed_at":"2021-01-08T15:01:59.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-02T05:25:37.055Z","etag":null,"topics":["azure","azure-functions","azure-functions-v3","custom-handler","paas"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jplane.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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}},"created_at":"2021-01-08T14:44:03.000Z","updated_at":"2023-06-05T14:18:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff73f543-dc01-4727-b767-14d13727bcfb","html_url":"https://github.com/jplane/azure-functions-custom-handler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplane%2Fazure-functions-custom-handler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplane%2Fazure-functions-custom-handler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplane%2Fazure-functions-custom-handler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jplane%2Fazure-functions-custom-handler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jplane","download_url":"https://codeload.github.com/jplane/azure-functions-custom-handler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245967994,"owners_count":20701940,"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":["azure","azure-functions","azure-functions-v3","custom-handler","paas"],"created_at":"2024-10-17T21:42:05.662Z","updated_at":"2025-03-28T04:23:46.997Z","avatar_url":"https://github.com/jplane.png","language":"Dockerfile","readme":"# Azure Functions custom handler example\n\nThis is a simple example of an Azure Functions [custom handler](https://docs.microsoft.com/en-us/azure/azure-functions/functions-custom-handlers) written in C#.\nOf course, Azure Functions supports C# quite nicely out-of-the-box, so typically there's no need for this if you're targeting C#. However, there are scenarios\nwhere you might want to leverage the Azure Functions host model (elastic scale, triggers and bindings, consumption-based pricing, etc.) but use a different programming model\nthan functions-as-a-service.\n\nCustom handlers run as a standalone HTTP endpoint adjacent to the Functions runtime, and invoked by the Functions runtime in response to Functions input:\n\n![handlers-overview](https://docs.microsoft.com/en-us/azure/azure-functions/media/functions-custom-handlers/azure-functions-custom-handlers-overview.png)\n\nThis sample implements the handler as a standard ASP.NET Core Web API app. The Functions runtime and Web API app are baked into a single Docker image which runs\nequally well on your laptop or in the cloud.\n\n## Pre-requisites\n\n- [Docker Desktop](https://www.docker.com/products/docker-desktop)\n\n- [Powershell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-7.1)\n\n- [Postman](https://www.postman.com/) or some other API testing tool\n\n## Build and run\n\n- clone the repo\n\n- open a Powershell prompt in the [FunctionHost](./FunctionHost) folder\n\n- execute the [build-and-run.ps1](./FunctionHost/build-and-run.ps1) script, which will:\n\n\t- delete any existing 'bin' and 'obj' folders\n\t- copy all source from [WebApplication1](./WebApplication1) to 'FunctionHost/src'\n\t- build a Docker image to host the Functions runtime and your custom ASP.NET endpoint (invoked by the Functions runtime) using [this](./FunctionHost/Dockerfile) Dockerfile\n\t- start up a container using the image built in the last step\n\n- to interact with the Functions app, use Postman or a similar tool to issue an HTTP GET:\n\n```\nhttp://localhost:5002/api/test/some-value\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplane%2Fazure-functions-custom-handler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjplane%2Fazure-functions-custom-handler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjplane%2Fazure-functions-custom-handler/lists"}