Azure / Azure/azure-functions-host

Add configuration for enabling only HTTP or only non-HTTP functions

Open
#4,412 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2k
Forks
482
Avg merge
2d 12h
Merged PRs (30d)
38

Description

#### What problem would the feature you're requesting solve? Please describe.
When deploying function apps containing HTTP and non-HTTP functions to Kubernetes running KEDA/Osiris, we need to split the app into 2 deployments. The Functions Core Tools figures out which functions need to be enabled/disabled in the HTTP and non-HTTP deployments and generates the correct environment variables. For instance:

```yaml
env:
- name: AzureFunctionsJobHost__functions__0
value: QueueTrigger
- name: AzureFunctionsJobHost__functions__1
value: QueueTrigger1
```

This is difficult to do when manually creating deployment scripts for deploying function apps to the environment and also makes it difficult for the Core Tools to use helm for deployment.

#### Describe the solution you'd like
- Add a way to enable only HTTP functions in a function app
- Add a way to enable only non-HTTP functions in a function app

#### Describe alternatives you've considered
Manually creating the correct the environment variables in the deployment scripts, and making sure they stay in sync with the function app.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by tracing how AzureFunctionsJobHost__functions__N currently selects functions and how HTTP versus non-HTTP triggers are identified; done means deployments can enable only HTTP functions or only non-HTTP functions without manually maintaining function lists.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, helm, kubernetes
Domain
backend, cloud, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.