An Azure service that provides a general-purpose, serverless container platform.
Yes. For background worker container apps that do not accept HTTP or TCP traffic, disabling ingress is the recommended pattern.
Why this fits the scenario:
- When ingress is enabled, Azure Container Apps can apply default probes. If the app does not listen on the configured target port, probe failures can cause the replica to restart or the revision to become degraded.
- The documented guidance for startup failures explicitly says that if the app does not serve HTTP, such as a background worker, disabling ingress or using internal ingress should be considered so that no HTTP probe is enforced.
- The accepted Microsoft Q&A guidance in the same scenario states that if the app is a worker with no listener, set ingress to Disabled to avoid the default startup probe and restarts.
For the specific questions:
- Is disabling ingress idiomatic for non-HTTP workers?
Yes. For queue-, event-, or bus-driven workers that do not expose a network endpoint, disabling ingress is the appropriate production configuration. - Does disabling ingress affect KEDA scaling, metrics collection, or queue-based processing?
No impact is stated in the provided material for queue-based scaling or metrics collection. The guidance only ties ingress to reachability and probe behavior. One documented scaling-related requirement is that if a scaling rule depends on reaching an external signal source, that source must be reachable from the app. - If ingress remains enabled, what is the best practice?
If ingress must stay enabled, configure probes so they match actual app behavior:- Make sure the probe port matches the app’s listening port and the ingress
targetPort. - If startup is slow, increase
initialDelaySecondsand use a startup probe with a higherfailureThreshold. - For HTTP probes, use a health endpoint that returns HTTP 200.
- For TCP probes, verify the app really listens on that port.
- Make sure the probe port matches the app’s listening port and the ingress
For the current worker apps, adding a dummy web server just to satisfy probes is not supported as a best practice in the provided material. The supported guidance is simpler: disable ingress when the app is not intended to receive inbound traffic.
A practical production split is:
- API handlers: enable ingress and configure health probes to match the exposed endpoint.
- Background workers: disable ingress unless they truly need inbound traffic.
If changes are needed, ingress can be disabled with:
az containerapp ingress disable \
--name <app-name> \
--resource-group <resource-group> \
- Troubleshoot start failures in Azure Container Apps
- Troubleshoot common deployment failures in Azure Container Apps (azure-portal)
- Configure ingress for your app in Azure Container Apps (azure-cli)
- Startup probe failing even not configured - Microsoft Q&A Hi , I do not have startup probes deployed for container apps still the probes are failing and causing issue-
- Container Apps Health Check - Microsoft Q&A Why does the Health Check behave differently if the Ingress is enabled? I have a container with GPU, Vllm image used. I've used Azure Files to persist the cache (the downloaded model, etc.)