Getting started
You can easily install the self-hosted gateway with Docker:
docker run -d -p 8080:8080 -p 8081:8081 --name <gateway-name> --env config.service.endpoint=<instance-name>.configuration.azure-api.net
config.service.auth=<auth-token> mcr.microsoft.com/azure-api-management/gateway:2.9.0
Learn how you can install it on other container platforms:
- Deploy self-hosted gateway on Kubernetes with Helm
- Deploy self-hosted gateway on Kubernetes with Azure Arc (Preview)
- Deploy self-hosted gateway on Kubernetes with YAML
Here are other relevant resources:
- Authenticate self-hosted gateway with Azure AD
- Self-hosted gateway on Microsoft Artifact Registry
- Our image tagging strategy
What is new?
Highlights
- Migrate from .NET 6 to .NET 8 to benefit from latest improvements
- Performance optimizations resulting in a 55% performance increase (*)
Features
- Circuit breaker configuration in backends now supports an optional failureResponse property, allowing you to define fallback HTTP status codes (100–599).
- The emit-metric, azure-openai-emit-token-metric , and llm-emit-token-metric policies now treat dimension keys as case-insensitive, ensuring consistent metric grouping and reducing casing-related issues.
- Backend pool failures now include a Retry-After header to support client-side resiliency strategies.
- Semantic caching has been updated to support GPT-4o prompts that include multiple content types and now correctly identifies max-message-count of the most recent messages.
Fixes / Changes
- Provide link to support policy in startup logs
- Changed
ConfigurationEndpointHasNoScheme
log entry to not be warning since there is no pending action - Changed
LogFormatDetectionFailed
log entry to not be a warning since this is depends on configuration and is a non-issue - Fixed a bug where timings in logs were miscalculated
- Fixed a bug where JSON-formatted logs incorrectly log quotes for datetimes
- Fixed a bug where OIDC refresh was not a blocking call and causing multiple TokenSignatureKeyNotFound errors
- Fixed a bug where gateway startup should not fail because OpenTelemetry collector URI is not configured
- Fixed inaccurate detection and counting of backend connectivity errors in the Circuit Breaker policy.
- Fixed bandwidth calculation in quota-by-key policy on self-hosted gateway to include transferred bytes.
- Other general bug fixes
Breaking Changes
None.
Removal
None.
(*) Performance benchmark has been performed with Azure Load Testing with 2 testing engines resulting in 1000 VU for 30 minutes with 5 minutes ramp up. Traffic was sent to a single replica having 2 CPU and 2 GB memory, as per recommendation for minimal specs, using passthrough (no policies).