Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
98d64c0
Add azure-dev.yaml in root location
Mar 12, 2026
58b32f7
fix: Enhance logging and error tracking across API routes and services
Abdul-Microsoft Mar 13, 2026
09ef905
resolve pylint issue
Abdul-Microsoft Mar 13, 2026
11682b4
removed print statement
Abdul-Microsoft Mar 13, 2026
50836a7
resolve pylint issue
Abdul-Microsoft Mar 13, 2026
03d432d
Potential fix for pull request finding
Abdul-Microsoft Mar 13, 2026
a043e4f
add psl-github-issue-azdup as trigger
Mar 17, 2026
bc22a3f
fix: add managed identity to frontend App Service (AZR-000082)
Mar 17, 2026
78837bd
run by push trigger
Mar 17, 2026
5bbd189
fix: standardize parameter names in JSON files and improve case sensi…
Pavan-Microsoft Mar 17, 2026
550ef61
fix: standardize parameter names in JSON files and improve case sensi…
Avijit-Microsoft Mar 17, 2026
c90d7ed
feat: Enhance logging for API routes and services to improve traceabi…
Abdul-Microsoft Mar 18, 2026
a1d89ba
Add env name as production
Mar 18, 2026
fb763a3
update README sections and workflow fixes
Mar 18, 2026
60ee40d
update readme and remove branch push trigger
Mar 18, 2026
ebc1e80
Merge branch 'main' into psl-logging-improvements
Roopan-Microsoft Mar 18, 2026
cce4cb9
fix: downmerge from main to dev
Avijit-Microsoft Mar 18, 2026
54273a9
feat: Enhance logging and telemetry for chat and history services, in…
Abdul-Microsoft Mar 19, 2026
cf8b5c3
Merge branch 'psl-logging-improvements' of https://github.com/microso…
Abdul-Microsoft Mar 19, 2026
6142bd8
feat: Refactor logging statements to remove user_id from logs for pri…
Abdul-Microsoft Mar 19, 2026
ac4c996
fix: Change log level from debug to warning for unconfigured Applicat…
Abdul-Microsoft Mar 19, 2026
cfdfd47
feat: Update logging to use native types for conversation metrics in …
Abdul-Microsoft Mar 19, 2026
50837bc
fix: update default VM size to Standard_D2s_v5 and enhance troublesho…
Harsh-Microsoft Mar 19, 2026
92eaed4
add azd deploy pipeline and disable test validation
Mar 19, 2026
0bd12c6
Merge pull request #811 from microsoft/psl-logging-improvements
Roopan-Microsoft Mar 19, 2026
6defb0e
Merge pull request #821 from microsoft/hb-psl-us-36904
Mar 19, 2026
9824f4e
fix: enhance error handling and logging in event tracking and span pr…
Pavan-Microsoft Mar 20, 2026
81bec77
refactor: simplify logging messages in event tracking function
Pavan-Microsoft Mar 20, 2026
2692455
fix: enhance error handling and logging in event tracking and span pr…
Avijit-Microsoft Mar 20, 2026
40be236
feat: add function to determine if span name contains a Cosmos DB host
Pavan-Microsoft Mar 20, 2026
c8e4905
fix: codeql issue fix - add function to determine if span name contai…
Avijit-Microsoft Mar 20, 2026
e3fdce4
Refactor AI Foundry and content understanding modules to implement se…
Harsh-Microsoft Mar 20, 2026
f178506
fix: update location parameters in private endpoint modules to be sam…
Harsh-Microsoft Mar 23, 2026
885a2c6
Merge pull request #826 from microsoft/hb-psl-us-37902
Mar 23, 2026
a43838d
Merge pull request #815 from microsoft/psl-github-issue-azdup
Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/azure-dev-validation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Azure Template Validation
on:
workflow_dispatch:
workflow_dispatch:

permissions:
contents: read
Expand All @@ -11,6 +11,7 @@ permissions:
jobs:
template_validation_job:
runs-on: ubuntu-latest
environment: production
name: Template validation

steps:
Expand All @@ -21,13 +22,19 @@ jobs:
# Step 2: Validate the Azure template using microsoft/template-validation-action
- name: Validate Azure Template
uses: microsoft/template-validation-action@v0.4.4
with:
validateAzd: true
useDevContainer: false
validateTests: false
id: validation
env:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
AZURE_ENV_OPENAI_LOCATION: ${{ vars.AZURE_ENV_OPENAI_LOCATION || 'eastus2' }}
AZURE_ENV_USE_CASE: ${{ vars.AZURE_ENV_USE_CASE || 'telecom' }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}

Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/azure-dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Deploy to Azure

on:
workflow_dispatch:
# push:
# branches:
# - main

# Set up permissions for deploying with secretless Azure federated credentials
# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication
permissions:
id-token: write
contents: read

jobs:
build:
runs-on: ubuntu-latest
environment: production
env:
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
AZURE_ENV_OPENAI_LOCATION: ${{ vars.AZURE_ENV_OPENAI_LOCATION || 'eastus2' }}
AZURE_ENV_USE_CASE: ${{ vars.AZURE_ENV_USE_CASE || 'telecom' }}
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Install azd
uses: Azure/setup-azd@v2.0.0

- name: Log in with Azure (Federated Credentials)
run: |
azd auth login `
--client-id "$Env:AZURE_CLIENT_ID" `
--federated-credential-provider "github" `
--tenant-id "$Env:AZURE_TENANT_ID"
shell: pwsh

- name: Provision Infrastructure
run: azd provision --no-prompt
env:
AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}

- name: Deploy Application
run: azd deploy --no-prompt
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Leverages Azure Content Understanding, Foundry IQ, Azure OpenAI Service, Azure A

<br/>

## Features

### Key features
<details open>
<summary>Click to learn more about the key features this solution enables</summary>
Expand All @@ -58,6 +60,8 @@ Summarized conversations, topic generation, and key phrase extraction support fa


<br /><br />
## Getting Started

<h2><img src="./documents/Images/ReadMe/quick-deploy.png" width="48" />
Quick deploy
</h2>
Expand All @@ -79,6 +83,8 @@ Follow the quick deploy steps on the deployment guide to deploy this solution

<br/>

## Guidance

### Prerequisites and costs
To deploy this solution accelerator, ensure you have access to an [Azure subscription](https://azure.microsoft.com/free/) with the necessary permissions to create **resource groups, resources, app registrations, and assign roles at the resource group level**. This should include Contributor role at the subscription level and Role Based Access Control role on the subscription and/or resource group level. Follow the steps in [Azure Account Set Up](./documents/AzureAccountSetUp.md).

Expand All @@ -96,6 +102,11 @@ _Note: This is not meant to outline all costs as selected SKUs, scaled use, cust

<br/>

>⚠️ **Important:** To avoid unnecessary costs, remember to take down your app if it's no longer in use,
either by deleting the resource group in the Portal or running `azd down`.

## Resources

| Product | Description | Tier / Expected Usage Notes | Cost |
|---|---|---|---|
| [Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry) | Used to orchestrate and build AI workflows that combine Azure AI services. | Free Tier | [Pricing](https://azure.microsoft.com/pricing/details/ai-studio/) |
Expand All @@ -112,8 +123,6 @@ _Note: This is not meant to outline all costs as selected SKUs, scaled use, cust

<br/>

>⚠️ **Important:** To avoid unnecessary costs, remember to take down your app if it's no longer in use,
either by deleting the resource group in the Portal or running `azd down`.

<br /><br />
<h2><img src="./documents/Images/ReadMe/business-scenario.png" width="48" />
Expand Down
1 change: 1 addition & 0 deletions documents/CustomizingAzdParameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ By default this template will use the environment name as the prefix to prevent
| `AZURE_EXISTING_AI_PROJECT_RESOURCE_ID` | string | `<Existing AI Project resource Id>` | Reuses an existing AIFoundry and AIFoundryProject instead of creating a new one. |
| `AZURE_ENV_VM_ADMIN_USERNAME` | string | `take(newGuid(), 20)` | The administrator username for the virtual machine. |
| `AZURE_ENV_VM_ADMIN_PASSWORD` | string | `newGuid()` | The administrator password for the virtual machine. |
| `AZURE_ENV_VM_SIZE` | string | `Standard_D2s_v5` | The size/SKU of the Jumpbox Virtual Machine (e.g., `Standard_D2s_v5`, `Standard_DS2_v2`). |
| `AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT` | string | `<Container Registry Endpoint>` | The hostname/endpoint for the container registry used by both backend and frontend containers. |


Expand Down
2 changes: 1 addition & 1 deletion documents/TroubleShootingSteps.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Use these as quick reference guides to unblock your deployments.
| **ServiceQuotaExceeded** | Free tier service quota limit reached for Azure AI Search | This error occurs when you attempt to deploy an Azure AI Search service but have already reached the **free tier quota limit** for your subscription. Each Azure subscription is limited to **one free tier Search service**.<br><br>**Example error message:**<br>`ServiceQuotaExceeded: Operation would exceed 'free' tier service quota. You are using 1 out of 1 'free' tier service quota.`<br><br>**Common causes:**<br><ul><li>Already have a free tier Azure AI Search service in the subscription</li><li>Previous deployment created a free tier Search service that wasn't deleted</li><li>Attempting to deploy multiple environments with free tier Search services</li></ul><br>**Resolution:**<br><ul><li>**Option 1: Delete existing free tier Search service:**<br>`az search service list --query "[?sku.name=='free']" -o table`<br>`az search service delete --name <service-name> --resource-group <rg-name> --yes`</li><li>**Option 2: Upgrade to a paid SKU:**<br>Modify your Bicep/ARM template to use `basic`, `standard`, or higher SKU instead of `free`</li><li>**Option 3: Use existing Search service:**<br>Reference the existing free tier Search service in your deployment instead of creating a new one</li><li>**Request quota increase:**<br>Submit a support request with issue type 'Service and subscription limits (quota)' and quota type 'Search' via [Azure Quota Request](https://aka.ms/AddQuotaSubscription)</li></ul><br>**Reference:**<br><ul><li>[Azure AI Search service limits](https://learn.microsoft.com/en-us/azure/search/search-limits-quotas-capacity)</li><li>[Azure AI Search pricing tiers](https://learn.microsoft.com/en-us/azure/search/search-sku-tier)</li></ul> |
| **InsufficientQuota** | Not enough quota available in subscription | <ul><li>Check if you have sufficient quota available in your subscription before deployment</li><li>To verify, refer to the [quota_check](../documents/QuotaCheck.md) file for details</li></ul> |
| **MaxNumberOfRegionalEnvironmentsInSubExceeded** | Maximum Container App Environments limit reached for region |This error occurs when you attempt to create more **Azure Container App Environments** than the regional quota limit allows for your subscription. Each Azure region has a specific limit on the number of Container App Environments that can be created per subscription.<br><br>**Common Causes:**<br><ul><li>Deploying to regions with low quota limits (e.g., Sweden Central allows only 1 environment)</li><li>Multiple deployments without cleaning up previous environments</li><li>Exceeding the standard limit of 15 environments in most major regions</li></ul><br>**Resolution:**<br><ul><li>**Delete unused environments** in the target region, OR</li><li>**Deploy to a different region** with available capacity, OR</li><li>**Request quota increase** via [Azure Support](https://go.microsoft.com/fwlink/?linkid=2208872)</li></ul><br>**Reference:**<br><ul><li>[Azure Container Apps quotas](https://learn.microsoft.com/en-us/azure/container-apps/quotas)</li><li>[Azure subscription and service limits](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits)</li></ul> |
| **SkuNotAvailable** | Requested SKU not available in selected location or zone | You receive this error in the following scenarios:<br><ul><li>When the resource SKU you've selected, such as VM size, isn't available for a location or zone</li><li>If you're deploying an Azure Spot VM or Spot scale set instance, and there isn't any capacity for Azure Spot in this location. For more information, see Spot error messages</li></ul> |
| **SkuNotAvailable** | Requested SKU not available in selected location or zone | This error occurs when the resource SKU you've selected (such as VM size) isn't available for the target location or availability zone.<br><br>**In this deployment**, the jumpbox VM defaults to `Standard_D2s_v5`. While this size is available in most regions, certain regions or zones may not support it.<br><br>**Resolution:**<br><ul><li>**Check SKU availability** for your target region:<br>`az vm list-skus --location <region> --size Standard_D2s --output table`</li><li>**Override the VM size** if the default isn't available in your region:<br>`azd env set AZURE_ENV_VM_SIZE Standard_D2s_v4`</li><li>**Recommended alternatives** (all support accelerated networking + Premium SSD):<br>- `Standard_D2s_v4` — previous gen, identical pricing<br>- `Standard_D2as_v5` — AMD-based, similar pricing<br>- `Standard_D2s_v3` — older gen, widely available</li><li>**Avoid A-series VMs** (e.g., `Standard_A2m_v2`) — they do not support accelerated networking or Premium SSD, which are required by this deployment</li></ul><br>**Reference:**<br><ul><li>[Resolve errors for SKU not available](https://learn.microsoft.com/en-us/azure/azure-resource-manager/troubleshooting/error-sku-not-available)</li><li>[Azure VM sizes - Dsv5 series](https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/general-purpose/dsv5-series)</li></ul> |
| **Conflict - No available instances to satisfy this request** | Azure App Service has insufficient capacity in the region | This error occurs when Azure App Service doesn't have enough available compute instances in the selected region to provision or scale your app.<br><br>**Common Causes:**<br><ul><li>High demand in the selected region (e.g., East US, West Europe)</li><li>Specific SKUs experiencing capacity constraints (Free, Shared, or certain Premium tiers)</li><li>Multiple rapid deployments in the same region</li></ul><br>**Resolution:**<br><ul><li>**Wait and Retry** (15-30 minutes): `azd up`</li><li>**Deploy to a New Resource Group** (Recommended for urgent cases):<br>```<br>azd down --force --purge<br>azd up<br>```</li><li>**Try a Different Region:**<br>Update region in `main.bicep` or `azure.yaml` to a less congested region (e.g., `westus2`, `centralus`, `northeurope`)</li><li>**Use a Different SKU/Tier:**<br>If using Free/Shared tier, upgrade to Basic or Standard<br>Check SKU availability: `az appservice list-locations --sku <sku-name>`</li></ul><br>**Reference:** [Azure App Service Plans](https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans) |

--------------------------------
Expand Down
Loading
Loading