fa-maxconf-prod
fa-maxconf-test
:::
The solution uses Function Apps to host and execute the custom application code. These Function Apps are triggered either by the API or by a timer.
- Retrieve room name from message popped from room-creation-queue
The API Management Services layer serves as the entry point for Function Apps. Incoming requests are filtered and processed before being relayed to the Function App for further handling. Ultimately, the API Management Services are responsible for forwarding the response back to the client.
-
Telemetry Collection: Collects telemetry data generated by the Function App. This includes information your app writes to logs.
-
Performance Monitoring: Monitors performance metrics such as response times, availability, and server requests.
-
Error Detection: Automatically detects performance anomalies in the Function App.
-
Custom Logging: Allows the use of code-based custom logging to be written into Log Analytics.
Environment variables for Function Apps are stored in Key Vault.
A Managed Identity assigned to the Function App grants it RBAC access to the Key Vault and Storage Account. This allows secrets to be retrieved and used with no plain-text transmissions.
Function Apps use deployment slots to enable zero-downtime deployments and instant rollback.
| Slot | URL | Purpose |
|---|
| production (default) | https://api.test.vc.maxconf.ca | UAT - accessed by BCGov DEV2, SIT, QA, PREPROD, BCSC DEV/QA/Test |
edge | https://api.test.vc.maxconf.ca/edge | Developer preview - cutting-edge code from open PRs |
- Push to
main deploys to the production (default) slot.
- Pull requests deploy to the
edge slot for developer preview.
- Only one edge slot exists - the most recent PR push overwrites previous deployments.
| Slot | Purpose |
|---|
| production (default) | Live production traffic |
staging | Receives the next candidate release; safe to overwrite each cycle |
staging-2 | Retains the previous production version (V) for immediate rollback |
PR opened ──────────► fa-maxconf-test/edge (developer preview)
PR merged to main ──► fa-maxconf-test/production (UAT)
Tag pushed ─────────► fa-maxconf-prod/staging (staged release)
Swap 1: prod ↔ staging (promote to production)
Swap 2: staging ↔ staging-2 (preserve rollback)
To roll back production to the previous version, swap production with staging-2:
az webapp deployment slot swap \
--resource-group rg-application \
This immediately restores the previous version to production with no redeployment required.