From d4264fdc81d32abb1a9a5013549acb0bc1557700 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Thu, 2 Jul 2026 13:03:47 +0530 Subject: [PATCH 01/10] Create script to build and push image --- infra/main.bicep | 97 +++++++++++++------- infra/main.parameters.json | 20 +++- infra/main.waf.parameters.json | 6 -- infra/main_custom.bicep | 6 -- infra/scripts/acr_build_push.ps1 | 153 +++++++++++++++++++++++++++++++ infra/scripts/acr_build_push.sh | 148 ++++++++++++++++++++++++++++++ 6 files changed, 380 insertions(+), 50 deletions(-) create mode 100644 infra/scripts/acr_build_push.ps1 create mode 100644 infra/scripts/acr_build_push.sh diff --git a/infra/main.bicep b/infra/main.bicep index 34c40e41..b08e33fa 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -70,13 +70,7 @@ param gptModelVersion string = '2025-11-13' @minValue(1) @description('Optional. Capacity of the GPT deployment: (minimum 10).') -param gptDeploymentCapacity int = 300 - -@description('Optional. The container registry login server/endpoint for the container images (for example, an Azure Container Registry endpoint).') -param containerRegistryEndpoint string = 'cpscontainerreg.azurecr.io' - -@description('Optional. The image tag for the container images.') -param imageTag string = 'latest_v2' +param gptDeploymentCapacity int = 200 @description('Optional. Enable WAF for the deployment.') param enablePrivateNetworking bool = false @@ -722,11 +716,11 @@ module avmAiServices 'modules/account/aifoundry.bicep' = { customSubDomainName: 'aif-${solutionSuffix}' diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspace!.outputs.resourceId }] : null roleAssignments: [ - { - principalId: avmManagedIdentity.outputs.principalId - roleDefinitionIdOrName: '8e3af657-a8ff-443c-a75c-2fe8c4bcb635' // Owner role - principalType: 'ServicePrincipal' - } + // { + // principalId: avmManagedIdentity.outputs.principalId + // roleDefinitionIdOrName: '8e3af657-a8ff-443c-a75c-2fe8c4bcb635' // Owner role + // principalType: 'ServicePrincipal' + // } { principalId: avmContainerApp.outputs.systemAssignedMIPrincipalId! roleDefinitionIdOrName: 'Cognitive Services OpenAI User' @@ -888,19 +882,24 @@ module avmContainerApp 'br/public:avm/res/app/container-app:0.22.1' = { environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' enableTelemetry: enableTelemetry - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] managedIdentities: { systemAssigned: true userAssignedResourceIds: [ avmContainerRegistryReader.outputs.resourceId ] } - + containers: [ { name: 'ca-${solutionSuffix}' - image: '${containerRegistryEndpoint}/contentprocessor:${imageTag}' - + image: 'mcr.microsoft.com/k8se/quickstart:latest' + resources: { cpu: 4 memory: '8.0Gi' @@ -957,7 +956,12 @@ module avmContainerApp_API 'br/public:avm/res/app/container-app:0.22.1' = { environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' enableTelemetry: enableTelemetry - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -968,7 +972,7 @@ module avmContainerApp_API 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-api' - image: '${containerRegistryEndpoint}/contentprocessorapi:${imageTag}' + image: 'mcr.microsoft.com/k8se/quickstart:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1079,7 +1083,7 @@ module avmContainerApp_API 'br/public:avm/res/app/container-app:0.22.1' = { } } } - + //========== Container App Web ========== // module avmContainerApp_Web 'br/public:avm/res/app/container-app:0.22.1' = { name: take('avm.res.app.container-app-web.${solutionSuffix}', 64) @@ -1089,7 +1093,12 @@ module avmContainerApp_Web 'br/public:avm/res/app/container-app:0.22.1' = { environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' enableTelemetry: enableTelemetry - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -1119,7 +1128,7 @@ module avmContainerApp_Web 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-web' - image: '${containerRegistryEndpoint}/contentprocessorweb:${imageTag}' + image: 'mcr.microsoft.com/k8se/quickstart:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1162,7 +1171,7 @@ module avmContainerApp_Web 'br/public:avm/res/app/container-app:0.22.1' = { ] } } - + // ========== Container App Workflow ========== // module avmContainerApp_Workflow 'br/public:avm/res/app/container-app:0.22.1' = { name: take('avm.res.app.container-app-wkfl.${solutionSuffix}', 64) @@ -1172,7 +1181,12 @@ module avmContainerApp_Workflow 'br/public:avm/res/app/container-app:0.22.1' = { environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' enableTelemetry: enableTelemetry - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -1183,7 +1197,7 @@ module avmContainerApp_Workflow 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-wkfl' - image: '${containerRegistryEndpoint}/contentprocessorworkflow:${imageTag}' + image: 'mcr.microsoft.com/k8se/quickstart:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1550,7 +1564,12 @@ module avmContainerApp_update 'br/public:avm/res/app/container-app:0.22.1' = { enableTelemetry: enableTelemetry environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -1561,8 +1580,8 @@ module avmContainerApp_update 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}' - image: '${containerRegistryEndpoint}/contentprocessor:${imageTag}' - + image: 'mcr.microsoft.com/k8se/quickstart:latest' + resources: { cpu: 4 memory: '8.0Gi' @@ -1623,7 +1642,7 @@ module avmContainerApp_update 'br/public:avm/res/app/container-app:0.22.1' = { cognitiveServicePrivateEndpoint ] } - + module avmContainerApp_API_update 'br/public:avm/res/app/container-app:0.22.1' = { name: take('avm.res.app.container-app-api.update.${solutionSuffix}', 64) params: { @@ -1632,7 +1651,12 @@ module avmContainerApp_API_update 'br/public:avm/res/app/container-app:0.22.1' = enableTelemetry: enableTelemetry environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -1640,11 +1664,11 @@ module avmContainerApp_API_update 'br/public:avm/res/app/container-app:0.22.1' = avmContainerRegistryReader.outputs.resourceId ] } - + containers: [ { name: 'ca-${solutionSuffix}-api' - image: '${containerRegistryEndpoint}/contentprocessorapi:${imageTag}' + image: 'mcr.microsoft.com/k8se/quickstart:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1758,7 +1782,7 @@ module avmContainerApp_API_update 'br/public:avm/res/app/container-app:0.22.1' = cognitiveServicePrivateEndpoint ] } - + // ========== Container App Workflow Update ========== // module avmContainerApp_Workflow_update 'br/public:avm/res/app/container-app:0.22.1' = { name: take('avm.res.app.container-app-wkfl.update.${solutionSuffix}', 64) @@ -1768,7 +1792,12 @@ module avmContainerApp_Workflow_update 'br/public:avm/res/app/container-app:0.22 enableTelemetry: enableTelemetry environmentResourceId: avmContainerAppEnv.outputs.resourceId workloadProfileName: 'Consumption' - registries: null + registries: [ + { + server: avmContainerRegistry.outputs.loginServer + identity: avmContainerRegistryReader.outputs.resourceId + } + ] tags: tags managedIdentities: { systemAssigned: true @@ -1779,7 +1808,7 @@ module avmContainerApp_Workflow_update 'br/public:avm/res/app/container-app:0.22 containers: [ { name: 'ca-${solutionSuffix}-wkfl' - image: '${containerRegistryEndpoint}/contentprocessorworkflow:${imageTag}' + image: 'mcr.microsoft.com/k8se/quickstart:latest' resources: { cpu: 4 memory: '8.0Gi' diff --git a/infra/main.parameters.json b/infra/main.parameters.json index 44153d57..e5ef332d 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -29,11 +29,23 @@ "existingFoundryProjectResourceId": { "value": "${AZURE_EXISTING_AIPROJECT_RESOURCE_ID}" }, - "containerRegistryEndpoint": { - "value": "${AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT}" + "enableMonitoring": { + "value": true }, - "imageTag": { - "value": "${AZURE_ENV_IMAGETAG=latest_v2}" + "enablePrivateNetworking": { + "value": true + }, + "enableScalability": { + "value": true + }, + "vmAdminUsername": { + "value": "${AZURE_ENV_VM_ADMIN_USERNAME}" + }, + "vmAdminPassword": { + "value": "${AZURE_ENV_VM_ADMIN_PASSWORD}" + }, + "vmSize": { + "value": "${AZURE_ENV_VM_SIZE}" } } } \ No newline at end of file diff --git a/infra/main.waf.parameters.json b/infra/main.waf.parameters.json index 8e145a07..e5ef332d 100644 --- a/infra/main.waf.parameters.json +++ b/infra/main.waf.parameters.json @@ -46,12 +46,6 @@ }, "vmSize": { "value": "${AZURE_ENV_VM_SIZE}" - }, - "containerRegistryEndpoint": { - "value": "${AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT}" - }, - "imageTag": { - "value": "${AZURE_ENV_IMAGETAG=latest_v2}" } } } \ No newline at end of file diff --git a/infra/main_custom.bicep b/infra/main_custom.bicep index 71add0f0..043ff9ce 100644 --- a/infra/main_custom.bicep +++ b/infra/main_custom.bicep @@ -75,12 +75,6 @@ param gptModelVersion string = '2025-11-13' @description('Optional. Capacity of the GPT deployment: (minimum 10).') param gptDeploymentCapacity int = 300 -@description('Optional. The container registry login server/endpoint for the container images (for example, an Azure Container Registry endpoint).') -param containerRegistryEndpoint string = 'cpscontainerreg.azurecr.io' - -@description('Optional. The image tag for the container images.') -param imageTag string = 'latest_v2' - @description('Optional. Enable WAF for the deployment.') param enablePrivateNetworking bool = false diff --git a/infra/scripts/acr_build_push.ps1 b/infra/scripts/acr_build_push.ps1 new file mode 100644 index 00000000..575a3b53 --- /dev/null +++ b/infra/scripts/acr_build_push.ps1 @@ -0,0 +1,153 @@ +# ============================================================================= +# ACR Build and Push Script (PowerShell) +# This script builds container images remotely using Azure Container Registry +# and updates the Container Apps to use the new images. +# ============================================================================= + +$ErrorActionPreference = "Stop" + +Write-Host "============================================================" +Write-Host "ACR Build and Push - Starting..." +Write-Host "============================================================" + +# Load values from azd env +$ACR_NAME = azd env get-value CONTAINER_REGISTRY_NAME +$ACR_LOGIN_SERVER = azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER +$RESOURCE_GROUP = azd env get-value AZURE_RESOURCE_GROUP +$CONTAINER_APP_NAME = azd env get-value CONTAINER_APP_NAME +$CONTAINER_API_APP_NAME = azd env get-value CONTAINER_API_APP_NAME +$CONTAINER_WEB_APP_NAME = azd env get-value CONTAINER_WEB_APP_NAME +$CONTAINER_WORKFLOW_APP_NAME = azd env get-value CONTAINER_WORKFLOW_APP_NAME +$USER_IDENTITY_ID = azd env get-value CONTAINER_APP_USER_IDENTITY_ID + +$IMAGE_TAG = "latest" + +# Get the script directory and navigate to repo root +$ScriptDir = $PSScriptRoot +$RepoRoot = Resolve-Path (Join-Path $ScriptDir "..\..") + +Write-Host "" +Write-Host " ACR Name: $ACR_NAME" +Write-Host " ACR Login Server: $ACR_LOGIN_SERVER" +Write-Host " Resource Group: $RESOURCE_GROUP" +Write-Host " Image Tag: $IMAGE_TAG" +Write-Host "" + +# ============================================================================= +# Step 1: Build and push images to ACR using az acr build +# ============================================================================= +Write-Host "============================================================" +Write-Host "Step 1: Building and pushing images to ACR..." +Write-Host "============================================================" + +# --- ContentProcessor --- +Write-Host "" +Write-Host " Building contentprocessor image..." +az acr build ` + --registry $ACR_NAME ` + --image "contentprocessor:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessor\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessor" + +if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessor image" } +Write-Host " [OK] contentprocessor image built and pushed." + +# --- ContentProcessorAPI --- +Write-Host "" +Write-Host " Building contentprocessorapi image..." +az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorapi:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorAPI\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorAPI" + +if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorapi image" } +Write-Host " [OK] contentprocessorapi image built and pushed." + +# --- ContentProcessorWeb --- +Write-Host "" +Write-Host " Building contentprocessorweb image..." +az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorweb:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorWeb\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorWeb" + +if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorweb image" } +Write-Host " [OK] contentprocessorweb image built and pushed." + +# --- ContentProcessorWorkflow --- +Write-Host "" +Write-Host " Building contentprocessorworkflow image..." +az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorworkflow:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorWorkflow\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorWorkflow" + +if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorworkflow image" } +Write-Host " [OK] contentprocessorworkflow image built and pushed." + +Write-Host "" +Write-Host " All images built and pushed successfully." + +# ============================================================================= +# Step 2: Update Container Apps to use the new images from ACR +# ============================================================================= +Write-Host "" +Write-Host "============================================================" +Write-Host "Step 2: Updating Container Apps with new images..." +Write-Host "============================================================" + +# --- Update ContentProcessor Container App --- +Write-Host "" +Write-Host " Updating $CONTAINER_APP_NAME..." +az containerapp update ` + --name $CONTAINER_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessor:$IMAGE_TAG" + +if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_APP_NAME" } +Write-Host " [OK] $CONTAINER_APP_NAME updated." + +# --- Update ContentProcessorAPI Container App --- +Write-Host "" +Write-Host " Updating $CONTAINER_API_APP_NAME..." +az containerapp update ` + --name $CONTAINER_API_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorapi:$IMAGE_TAG" + +if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_API_APP_NAME" } +Write-Host " [OK] $CONTAINER_API_APP_NAME updated." + +# --- Update ContentProcessorWeb Container App --- +Write-Host "" +Write-Host " Updating $CONTAINER_WEB_APP_NAME..." +az containerapp update ` + --name $CONTAINER_WEB_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorweb:$IMAGE_TAG" + +if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WEB_APP_NAME" } +Write-Host " [OK] $CONTAINER_WEB_APP_NAME updated." + +# --- Update ContentProcessorWorkflow Container App --- +Write-Host "" +Write-Host " Updating $CONTAINER_WORKFLOW_APP_NAME..." +az containerapp update ` + --name $CONTAINER_WORKFLOW_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorworkflow:$IMAGE_TAG" + +if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WORKFLOW_APP_NAME" } +Write-Host " [OK] $CONTAINER_WORKFLOW_APP_NAME updated." + +Write-Host "" +Write-Host "============================================================" +Write-Host "ACR Build and Push - Completed Successfully!" +Write-Host "============================================================" \ No newline at end of file diff --git a/infra/scripts/acr_build_push.sh b/infra/scripts/acr_build_push.sh new file mode 100644 index 00000000..c54dd65a --- /dev/null +++ b/infra/scripts/acr_build_push.sh @@ -0,0 +1,148 @@ +#!/bin/bash + +# ============================================================================= +# ACR Build and Push Script +# This script builds container images remotely using Azure Container Registry +# and updates the Container Apps to use the new images. +# ============================================================================= + +set -e + +echo "============================================================" +echo "ACR Build and Push - Starting..." +echo "============================================================" + +# Load values from azd env +ACR_NAME=$(azd env get-value CONTAINER_REGISTRY_NAME) +ACR_LOGIN_SERVER=$(azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER) +RESOURCE_GROUP=$(azd env get-value AZURE_RESOURCE_GROUP) +CONTAINER_APP_NAME=$(azd env get-value CONTAINER_APP_NAME) +CONTAINER_API_APP_NAME=$(azd env get-value CONTAINER_API_APP_NAME) +CONTAINER_WEB_APP_NAME=$(azd env get-value CONTAINER_WEB_APP_NAME) +CONTAINER_WORKFLOW_APP_NAME=$(azd env get-value CONTAINER_WORKFLOW_APP_NAME) +USER_IDENTITY_ID=$(azd env get-value CONTAINER_APP_USER_IDENTITY_ID) + +IMAGE_TAG="latest" + +# Get the directory where this script is located +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# Navigate to repo root (infra/scripts -> root) +REPO_ROOT="$(realpath "$SCRIPT_DIR/../..")" + +echo "" +echo " ACR Name: $ACR_NAME" +echo " ACR Login Server: $ACR_LOGIN_SERVER" +echo " Resource Group: $RESOURCE_GROUP" +echo " Image Tag: $IMAGE_TAG" +echo "" + +# ============================================================================= +# Step 1: Build and push images to ACR using az acr build +# ============================================================================= +echo "============================================================" +echo "Step 1: Building and pushing images to ACR..." +echo "============================================================" + +# --- ContentProcessor --- +echo "" +echo " Building contentprocessor image..." +az acr build \ + --registry "$ACR_NAME" \ + --image "contentprocessor:$IMAGE_TAG" \ + --file "$REPO_ROOT/src/ContentProcessor/Dockerfile" \ + --platform linux \ + "$REPO_ROOT/src/ContentProcessor" + +echo " ✅ contentprocessor image built and pushed." + +# --- ContentProcessorAPI --- +echo "" +echo " Building contentprocessorapi image..." +az acr build \ + --registry "$ACR_NAME" \ + --image "contentprocessorapi:$IMAGE_TAG" \ + --file "$REPO_ROOT/src/ContentProcessorAPI/Dockerfile" \ + --platform linux \ + "$REPO_ROOT/src/ContentProcessorAPI" + +echo " ✅ contentprocessorapi image built and pushed." + +# --- ContentProcessorWeb --- +echo "" +echo " Building contentprocessorweb image..." +az acr build \ + --registry "$ACR_NAME" \ + --image "contentprocessorweb:$IMAGE_TAG" \ + --file "$REPO_ROOT/src/ContentProcessorWeb/Dockerfile" \ + --platform linux \ + "$REPO_ROOT/src/ContentProcessorWeb" + +echo " ✅ contentprocessorweb image built and pushed." + +# --- ContentProcessorWorkflow --- +echo "" +echo " Building contentprocessorworkflow image..." +az acr build \ + --registry "$ACR_NAME" \ + --image "contentprocessorworkflow:$IMAGE_TAG" \ + --file "$REPO_ROOT/src/ContentProcessorWorkflow/Dockerfile" \ + --platform linux \ + "$REPO_ROOT/src/ContentProcessorWorkflow" + +echo " ✅ contentprocessorworkflow image built and pushed." + +echo "" +echo " All images built and pushed successfully." + +# ============================================================================= +# Step 2: Update Container Apps to use the new images from ACR +# ============================================================================= +echo "" +echo "============================================================" +echo "Step 2: Updating Container Apps with new images..." +echo "============================================================" + +# --- Update ContentProcessor Container App --- +echo "" +echo " Updating $CONTAINER_APP_NAME..." +az containerapp update \ + --name "$CONTAINER_APP_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --image "$ACR_LOGIN_SERVER/contentprocessor:$IMAGE_TAG" + +echo " ✅ $CONTAINER_APP_NAME updated." + +# --- Update ContentProcessorAPI Container App --- +echo "" +echo " Updating $CONTAINER_API_APP_NAME..." +az containerapp update \ + --name "$CONTAINER_API_APP_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --image "$ACR_LOGIN_SERVER/contentprocessorapi:$IMAGE_TAG" + +echo " ✅ $CONTAINER_API_APP_NAME updated." + +# --- Update ContentProcessorWeb Container App --- +echo "" +echo " Updating $CONTAINER_WEB_APP_NAME..." +az containerapp update \ + --name "$CONTAINER_WEB_APP_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --image "$ACR_LOGIN_SERVER/contentprocessorweb:$IMAGE_TAG" + +echo " ✅ $CONTAINER_WEB_APP_NAME updated." + +# --- Update ContentProcessorWorkflow Container App --- +echo "" +echo " Updating $CONTAINER_WORKFLOW_APP_NAME..." +az containerapp update \ + --name "$CONTAINER_WORKFLOW_APP_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --image "$ACR_LOGIN_SERVER/contentprocessorworkflow:$IMAGE_TAG" + +echo " ✅ $CONTAINER_WORKFLOW_APP_NAME updated." + +echo "" +echo "============================================================" +echo "ACR Build and Push - Completed Successfully!" +echo "============================================================" \ No newline at end of file From e9422c02e2fc1ecfbc6161de0df34449ed1aaa36 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Thu, 2 Jul 2026 13:31:29 +0530 Subject: [PATCH 02/10] revert unnecessary change --- infra/main.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/main.bicep b/infra/main.bicep index b08e33fa..f938bfdc 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -70,7 +70,7 @@ param gptModelVersion string = '2025-11-13' @minValue(1) @description('Optional. Capacity of the GPT deployment: (minimum 10).') -param gptDeploymentCapacity int = 200 +param gptDeploymentCapacity int = 300 @description('Optional. Enable WAF for the deployment.') param enablePrivateNetworking bool = false From e43b01635bca045cdb203e43f3e040de5fb6eae9 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Thu, 2 Jul 2026 13:55:07 +0530 Subject: [PATCH 03/10] Update the script --- infra/scripts/acr_build_push.ps1 | 383 ++++++++++++++++++++----------- infra/scripts/acr_build_push.sh | 126 +++++++++- 2 files changed, 370 insertions(+), 139 deletions(-) diff --git a/infra/scripts/acr_build_push.ps1 b/infra/scripts/acr_build_push.ps1 index 575a3b53..e1f3aef6 100644 --- a/infra/scripts/acr_build_push.ps1 +++ b/infra/scripts/acr_build_push.ps1 @@ -3,24 +3,125 @@ # This script builds container images remotely using Azure Container Registry # and updates the Container Apps to use the new images. # ============================================================================= - + param( + [string]$ResourceGroupName +) + $ErrorActionPreference = "Stop" Write-Host "============================================================" Write-Host "ACR Build and Push - Starting..." Write-Host "============================================================" -# Load values from azd env -$ACR_NAME = azd env get-value CONTAINER_REGISTRY_NAME -$ACR_LOGIN_SERVER = azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER -$RESOURCE_GROUP = azd env get-value AZURE_RESOURCE_GROUP -$CONTAINER_APP_NAME = azd env get-value CONTAINER_APP_NAME -$CONTAINER_API_APP_NAME = azd env get-value CONTAINER_API_APP_NAME -$CONTAINER_WEB_APP_NAME = azd env get-value CONTAINER_WEB_APP_NAME -$CONTAINER_WORKFLOW_APP_NAME = azd env get-value CONTAINER_WORKFLOW_APP_NAME -$USER_IDENTITY_ID = azd env get-value CONTAINER_APP_USER_IDENTITY_ID +if ([string]::IsNullOrWhiteSpace($ResourceGroupName)) { + + Write-Host "Using azd environment values..." + + $ACR_NAME = azd env get-value CONTAINER_REGISTRY_NAME + $ACR_LOGIN_SERVER = azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER + $RESOURCE_GROUP = azd env get-value AZURE_RESOURCE_GROUP + $CONTAINER_APP_NAME = azd env get-value CONTAINER_APP_NAME + $CONTAINER_API_APP_NAME = azd env get-value CONTAINER_API_APP_NAME + $CONTAINER_WEB_APP_NAME = azd env get-value CONTAINER_WEB_APP_NAME + $CONTAINER_WORKFLOW_APP_NAME = azd env get-value CONTAINER_WORKFLOW_APP_NAME + $USER_IDENTITY_ID = azd env get-value CONTAINER_APP_USER_IDENTITY_ID + +} +else { + + Write-Host "Using existing deployment from Resource Group: $ResourceGroupName" + + $RESOURCE_GROUP = $ResourceGroupName + + # Get ACR + $acr = az acr list ` + --resource-group $RESOURCE_GROUP ` + --query "[0]" ` + | ConvertFrom-Json + + if (-not $acr) { + throw "No Azure Container Registry found in $RESOURCE_GROUP" + } + + $ACR_NAME = $acr.name + $ACR_LOGIN_SERVER = $acr.loginServer + + # Get Container Apps + $containerApps = az containerapp list ` + --resource-group $RESOURCE_GROUP ` + | ConvertFrom-Json + + foreach ($app in $containerApps) { + + switch -Wildcard ($app.name) { + + "*-api" { + $CONTAINER_API_APP_NAME = $app.name + } + + "*-web" { + $CONTAINER_WEB_APP_NAME = $app.name + } + + "*-wkfl" { + $CONTAINER_WORKFLOW_APP_NAME = $app.name + } + + default { + $CONTAINER_APP_NAME = $app.name + } + } + } + + # Optional - Get Managed Identity + $USER_IDENTITY_ID = ( + az identity list ` + --resource-group $RESOURCE_GROUP ` + --query "[0].id" ` + -o tsv + ) +} $IMAGE_TAG = "latest" + +# Detect whether this is a WAF deployment +$DeploymentType = az group show ` + --name $RESOURCE_GROUP ` + --query "tags.Type" ` + -o tsv + +$IsWAF = $DeploymentType -eq "WAF" + +$OriginalPublicNetworkAccess = $null + +if ($IsWAF) { + + Write-Host "" + Write-Host "WAF deployment detected." + + # Save current setting + $OriginalPublicNetworkAccess = az acr show ` + --name $ACR_NAME ` + --resource-group $RESOURCE_GROUP ` + --query "publicNetworkAccess" ` + -o tsv + + if ($OriginalPublicNetworkAccess -eq "Disabled") { + + Write-Host "Temporarily enabling ACR Public Network Access..." + + az acr update ` + --name $ACR_NAME ` + --resource-group $RESOURCE_GROUP ` + --public-network-enabled true + + if ($LASTEXITCODE -ne 0) { + throw "Failed to enable ACR Public Network Access." + } + + Start-Sleep -Seconds 20 + } +} # Get the script directory and navigate to repo root $ScriptDir = $PSScriptRoot @@ -32,122 +133,146 @@ Write-Host " ACR Login Server: $ACR_LOGIN_SERVER" Write-Host " Resource Group: $RESOURCE_GROUP" Write-Host " Image Tag: $IMAGE_TAG" Write-Host "" - -# ============================================================================= -# Step 1: Build and push images to ACR using az acr build -# ============================================================================= -Write-Host "============================================================" -Write-Host "Step 1: Building and pushing images to ACR..." -Write-Host "============================================================" - -# --- ContentProcessor --- -Write-Host "" -Write-Host " Building contentprocessor image..." -az acr build ` - --registry $ACR_NAME ` - --image "contentprocessor:$IMAGE_TAG" ` - --file "$RepoRoot\src\ContentProcessor\Dockerfile" ` - --platform linux ` - "$RepoRoot\src\ContentProcessor" - -if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessor image" } -Write-Host " [OK] contentprocessor image built and pushed." - -# --- ContentProcessorAPI --- -Write-Host "" -Write-Host " Building contentprocessorapi image..." -az acr build ` - --registry $ACR_NAME ` - --image "contentprocessorapi:$IMAGE_TAG" ` - --file "$RepoRoot\src\ContentProcessorAPI\Dockerfile" ` - --platform linux ` - "$RepoRoot\src\ContentProcessorAPI" - -if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorapi image" } -Write-Host " [OK] contentprocessorapi image built and pushed." - -# --- ContentProcessorWeb --- -Write-Host "" -Write-Host " Building contentprocessorweb image..." -az acr build ` - --registry $ACR_NAME ` - --image "contentprocessorweb:$IMAGE_TAG" ` - --file "$RepoRoot\src\ContentProcessorWeb\Dockerfile" ` - --platform linux ` - "$RepoRoot\src\ContentProcessorWeb" - -if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorweb image" } -Write-Host " [OK] contentprocessorweb image built and pushed." - -# --- ContentProcessorWorkflow --- -Write-Host "" -Write-Host " Building contentprocessorworkflow image..." -az acr build ` - --registry $ACR_NAME ` - --image "contentprocessorworkflow:$IMAGE_TAG" ` - --file "$RepoRoot\src\ContentProcessorWorkflow\Dockerfile" ` - --platform linux ` - "$RepoRoot\src\ContentProcessorWorkflow" - -if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorworkflow image" } -Write-Host " [OK] contentprocessorworkflow image built and pushed." - -Write-Host "" -Write-Host " All images built and pushed successfully." - -# ============================================================================= -# Step 2: Update Container Apps to use the new images from ACR -# ============================================================================= -Write-Host "" -Write-Host "============================================================" -Write-Host "Step 2: Updating Container Apps with new images..." -Write-Host "============================================================" - -# --- Update ContentProcessor Container App --- -Write-Host "" -Write-Host " Updating $CONTAINER_APP_NAME..." -az containerapp update ` - --name $CONTAINER_APP_NAME ` - --resource-group $RESOURCE_GROUP ` - --image "$ACR_LOGIN_SERVER/contentprocessor:$IMAGE_TAG" - -if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_APP_NAME" } -Write-Host " [OK] $CONTAINER_APP_NAME updated." - -# --- Update ContentProcessorAPI Container App --- -Write-Host "" -Write-Host " Updating $CONTAINER_API_APP_NAME..." -az containerapp update ` - --name $CONTAINER_API_APP_NAME ` - --resource-group $RESOURCE_GROUP ` - --image "$ACR_LOGIN_SERVER/contentprocessorapi:$IMAGE_TAG" - -if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_API_APP_NAME" } -Write-Host " [OK] $CONTAINER_API_APP_NAME updated." - -# --- Update ContentProcessorWeb Container App --- -Write-Host "" -Write-Host " Updating $CONTAINER_WEB_APP_NAME..." -az containerapp update ` - --name $CONTAINER_WEB_APP_NAME ` - --resource-group $RESOURCE_GROUP ` - --image "$ACR_LOGIN_SERVER/contentprocessorweb:$IMAGE_TAG" - -if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WEB_APP_NAME" } -Write-Host " [OK] $CONTAINER_WEB_APP_NAME updated." - -# --- Update ContentProcessorWorkflow Container App --- -Write-Host "" -Write-Host " Updating $CONTAINER_WORKFLOW_APP_NAME..." -az containerapp update ` - --name $CONTAINER_WORKFLOW_APP_NAME ` - --resource-group $RESOURCE_GROUP ` - --image "$ACR_LOGIN_SERVER/contentprocessorworkflow:$IMAGE_TAG" - -if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WORKFLOW_APP_NAME" } -Write-Host " [OK] $CONTAINER_WORKFLOW_APP_NAME updated." - -Write-Host "" -Write-Host "============================================================" -Write-Host "ACR Build and Push - Completed Successfully!" -Write-Host "============================================================" \ No newline at end of file + +try { + # ============================================================================= + # Step 1: Build and push images to ACR using az acr build + # ============================================================================= + + Write-Host "============================================================" + Write-Host "Step 1: Building and pushing images to ACR..." + Write-Host "============================================================" + + # --- ContentProcessor --- + Write-Host "" + Write-Host " Building contentprocessor image..." + az acr build ` + --registry $ACR_NAME ` + --image "contentprocessor:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessor\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessor" + + if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessor image" } + Write-Host " [OK] contentprocessor image built and pushed." + + # --- ContentProcessorAPI --- + Write-Host "" + Write-Host " Building contentprocessorapi image..." + az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorapi:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorAPI\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorAPI" + + if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorapi image" } + Write-Host " [OK] contentprocessorapi image built and pushed." + + # --- ContentProcessorWeb --- + Write-Host "" + Write-Host " Building contentprocessorweb image..." + az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorweb:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorWeb\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorWeb" + + if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorweb image" } + Write-Host " [OK] contentprocessorweb image built and pushed." + + # --- ContentProcessorWorkflow --- + Write-Host "" + Write-Host " Building contentprocessorworkflow image..." + az acr build ` + --registry $ACR_NAME ` + --image "contentprocessorworkflow:$IMAGE_TAG" ` + --file "$RepoRoot\src\ContentProcessorWorkflow\Dockerfile" ` + --platform linux ` + "$RepoRoot\src\ContentProcessorWorkflow" + + if ($LASTEXITCODE -ne 0) { throw "Failed to build contentprocessorworkflow image" } + Write-Host " [OK] contentprocessorworkflow image built and pushed." + + Write-Host "" + Write-Host " All images built and pushed successfully." + + # ============================================================================= + # Step 2: Update Container Apps to use the new images from ACR + # ============================================================================= + Write-Host "" + Write-Host "============================================================" + Write-Host "Step 2: Updating Container Apps with new images..." + Write-Host "============================================================" + + # --- Update ContentProcessor Container App --- + Write-Host "" + Write-Host " Updating $CONTAINER_APP_NAME..." + az containerapp update ` + --name $CONTAINER_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessor:$IMAGE_TAG" + + if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_APP_NAME" } + Write-Host " [OK] $CONTAINER_APP_NAME updated." + + # --- Update ContentProcessorAPI Container App --- + Write-Host "" + Write-Host " Updating $CONTAINER_API_APP_NAME..." + az containerapp update ` + --name $CONTAINER_API_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorapi:$IMAGE_TAG" + + if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_API_APP_NAME" } + Write-Host " [OK] $CONTAINER_API_APP_NAME updated." + + # --- Update ContentProcessorWeb Container App --- + Write-Host "" + Write-Host " Updating $CONTAINER_WEB_APP_NAME..." + az containerapp update ` + --name $CONTAINER_WEB_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorweb:$IMAGE_TAG" + + if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WEB_APP_NAME" } + Write-Host " [OK] $CONTAINER_WEB_APP_NAME updated." + + # --- Update ContentProcessorWorkflow Container App --- + Write-Host "" + Write-Host " Updating $CONTAINER_WORKFLOW_APP_NAME..." + az containerapp update ` + --name $CONTAINER_WORKFLOW_APP_NAME ` + --resource-group $RESOURCE_GROUP ` + --image "$ACR_LOGIN_SERVER/contentprocessorworkflow:$IMAGE_TAG" + + if ($LASTEXITCODE -ne 0) { throw "Failed to update $CONTAINER_WORKFLOW_APP_NAME" } + Write-Host " [OK] $CONTAINER_WORKFLOW_APP_NAME updated." + + Write-Host "" + Write-Host "============================================================" + Write-Host "ACR Build and Push - Completed Successfully!" + Write-Host "============================================================" + +} +finally { + + if ($IsWAF -and $OriginalPublicNetworkAccess -eq "Disabled") { + + Write-Host "" + Write-Host "Restoring ACR Public Network Access..." + + az acr update ` + --name $ACR_NAME ` + --resource-group $RESOURCE_GROUP ` + --public-network-enabled false + + if ($LASTEXITCODE -eq 0) { + Write-Host "ACR Public Network Access restored." + } + else { + Write-Warning "Failed to restore ACR Public Network Access." + } + } +} \ No newline at end of file diff --git a/infra/scripts/acr_build_push.sh b/infra/scripts/acr_build_push.sh index c54dd65a..c191c1b9 100644 --- a/infra/scripts/acr_build_push.sh +++ b/infra/scripts/acr_build_push.sh @@ -7,23 +7,111 @@ # ============================================================================= set -e + +RESOURCE_GROUP_NAME="$1" echo "============================================================" echo "ACR Build and Push - Starting..." echo "============================================================" -# Load values from azd env -ACR_NAME=$(azd env get-value CONTAINER_REGISTRY_NAME) -ACR_LOGIN_SERVER=$(azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER) -RESOURCE_GROUP=$(azd env get-value AZURE_RESOURCE_GROUP) -CONTAINER_APP_NAME=$(azd env get-value CONTAINER_APP_NAME) -CONTAINER_API_APP_NAME=$(azd env get-value CONTAINER_API_APP_NAME) -CONTAINER_WEB_APP_NAME=$(azd env get-value CONTAINER_WEB_APP_NAME) -CONTAINER_WORKFLOW_APP_NAME=$(azd env get-value CONTAINER_WORKFLOW_APP_NAME) -USER_IDENTITY_ID=$(azd env get-value CONTAINER_APP_USER_IDENTITY_ID) +if [ -z "$RESOURCE_GROUP_NAME" ]; then + + echo "Using azd environment values..." + + ACR_NAME=$(azd env get-value CONTAINER_REGISTRY_NAME) + ACR_LOGIN_SERVER=$(azd env get-value CONTAINER_REGISTRY_LOGIN_SERVER) + RESOURCE_GROUP=$(azd env get-value AZURE_RESOURCE_GROUP) + + CONTAINER_APP_NAME=$(azd env get-value CONTAINER_APP_NAME) + CONTAINER_API_APP_NAME=$(azd env get-value CONTAINER_API_APP_NAME) + CONTAINER_WEB_APP_NAME=$(azd env get-value CONTAINER_WEB_APP_NAME) + CONTAINER_WORKFLOW_APP_NAME=$(azd env get-value CONTAINER_WORKFLOW_APP_NAME) + +else + + echo "Using existing deployment from Resource Group: $RESOURCE_GROUP_NAME" + + RESOURCE_GROUP="$RESOURCE_GROUP_NAME" + + ACR_NAME=$(az acr list \ + --resource-group "$RESOURCE_GROUP" \ + --query "[0].name" \ + -o tsv) + + ACR_LOGIN_SERVER=$(az acr show \ + --name "$ACR_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --query loginServer \ + -o tsv) + + while read APP; do + + case "$APP" in + + *-app) + CONTAINER_APP_NAME="$APP" + ;; + + *-api) + CONTAINER_API_APP_NAME="$APP" + ;; + + *-web) + CONTAINER_WEB_APP_NAME="$APP" + ;; + + *-wkfl) + CONTAINER_WORKFLOW_APP_NAME="$APP" + ;; + + esac + + done < <( + az containerapp list \ + --resource-group "$RESOURCE_GROUP" \ + --query "[].name" \ + -o tsv + ) + +fi IMAGE_TAG="latest" - + +DEPLOYMENT_TYPE=$(az group show \ + --name "$RESOURCE_GROUP" \ + --query "tags.Type" \ + -o tsv) + +IS_WAF=false + +if [ "$DEPLOYMENT_TYPE" = "WAF" ]; then + IS_WAF=true +fi + +ORIGINAL_PUBLIC_ACCESS="" + +if [ "$IS_WAF" = true ]; then + + ORIGINAL_PUBLIC_ACCESS=$(az acr show \ + --name "$ACR_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --query publicNetworkAccess \ + -o tsv) + + if [ "$ORIGINAL_PUBLIC_ACCESS" = "Disabled" ]; then + + echo "" + echo "Temporarily enabling ACR Public Network Access..." + + az acr update \ + --name "$ACR_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --public-network-enabled true + + sleep 20 + fi +fi + # Get the directory where this script is located SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Navigate to repo root (infra/scripts -> root) @@ -36,6 +124,24 @@ echo " Resource Group: $RESOURCE_GROUP" echo " Image Tag: $IMAGE_TAG" echo "" +cleanup() { + + if [ "$IS_WAF" = true ] && [ "$ORIGINAL_PUBLIC_ACCESS" = "Disabled" ]; then + + echo "" + echo "Restoring ACR Public Network Access..." + + az acr update \ + --name "$ACR_NAME" \ + --resource-group "$RESOURCE_GROUP" \ + --public-network-enabled false + + echo "ACR Public Network Access restored." + + fi +} + +trap cleanup EXIT # ============================================================================= # Step 1: Build and push images to ACR using az acr build # ============================================================================= From 318391b5595967f28bce5cca3f1a78fb235df35f Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 11:20:25 +0530 Subject: [PATCH 04/10] Revert unnecessary changes from main.parametres.json --- infra/main.parameters.json | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/infra/main.parameters.json b/infra/main.parameters.json index e5ef332d..ecf93fc5 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -28,24 +28,6 @@ }, "existingFoundryProjectResourceId": { "value": "${AZURE_EXISTING_AIPROJECT_RESOURCE_ID}" - }, - "enableMonitoring": { - "value": true - }, - "enablePrivateNetworking": { - "value": true - }, - "enableScalability": { - "value": true - }, - "vmAdminUsername": { - "value": "${AZURE_ENV_VM_ADMIN_USERNAME}" - }, - "vmAdminPassword": { - "value": "${AZURE_ENV_VM_ADMIN_PASSWORD}" - }, - "vmSize": { - "value": "${AZURE_ENV_VM_SIZE}" } } } \ No newline at end of file From 9f9ae02f0270356e4a54272e6508b31f8ce8f017 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 11:22:03 +0530 Subject: [PATCH 05/10] bicep build changes --- infra/main.json | 138 ++++++++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 58 deletions(-) diff --git a/infra/main.json b/infra/main.json index 7aa966c0..cd86e87a 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "3841741921827855283" + "version": "0.43.8.12551", + "templateHash": "9984485182269407267" }, "name": "Content Processing Solution Accelerator", "description": "Bicep template to deploy the Content Processing Solution Accelerator with AVM compliance." @@ -105,20 +105,6 @@ "description": "Optional. Capacity of the GPT deployment: (minimum 10)." } }, - "containerRegistryEndpoint": { - "type": "string", - "defaultValue": "cpscontainerreg.azurecr.io", - "metadata": { - "description": "Optional. The container registry login server/endpoint for the container images (for example, an Azure Container Registry endpoint)." - } - }, - "imageTag": { - "type": "string", - "defaultValue": "latest_v2", - "metadata": { - "description": "Optional. The image tag for the container images." - } - }, "enablePrivateNetworking": { "type": "bool", "defaultValue": false, @@ -339,8 +325,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "4148028483891244972" + "version": "0.43.8.12551", + "templateHash": "13206959925771644022" } }, "definitions": { @@ -19308,8 +19294,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "14763088429533772999" + "version": "0.43.8.12551", + "templateHash": "13200482898648544945" } }, "parameters": { @@ -23334,8 +23320,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "14944034125601240095" + "version": "0.43.8.12551", + "templateHash": "15729887991536611208" } }, "parameters": { @@ -23938,8 +23924,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "3008626070117491750" + "version": "0.43.8.12551", + "templateHash": "8672669912945312056" }, "name": "Container Registry Module" }, @@ -36241,11 +36227,6 @@ "diagnosticSettings": "[if(parameters('enableMonitoring'), createObject('value', createArray(createObject('workspaceResourceId', reference('logAnalyticsWorkspace').outputs.resourceId.value))), createObject('value', null()))]", "roleAssignments": { "value": [ - { - "principalId": "[reference('avmManagedIdentity').outputs.principalId.value]", - "roleDefinitionIdOrName": "8e3af657-a8ff-443c-a75c-2fe8c4bcb635", - "principalType": "ServicePrincipal" - }, { "principalId": "[reference('avmContainerApp').outputs.systemAssignedMIPrincipalId.value]", "roleDefinitionIdOrName": "Cognitive Services OpenAI User", @@ -36316,8 +36297,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "9717412251971567270" + "version": "0.43.8.12551", + "templateHash": "9621562991003135575" }, "name": "Cognitive Services", "description": "This module deploys a Cognitive Service." @@ -37576,8 +37557,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "7181684108515692296" + "version": "0.43.8.12551", + "templateHash": "8864856500234357706" } }, "definitions": { @@ -39309,8 +39290,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "4868310155755856428" + "version": "0.43.8.12551", + "templateHash": "312284397710022090" } }, "definitions": { @@ -39463,8 +39444,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "4168378797065634217" + "version": "0.43.8.12551", + "templateHash": "276675105610077046" } }, "definitions": { @@ -39681,8 +39662,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "7181684108515692296" + "version": "0.43.8.12551", + "templateHash": "8864856500234357706" } }, "definitions": { @@ -41414,8 +41395,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "4868310155755856428" + "version": "0.43.8.12551", + "templateHash": "312284397710022090" } }, "definitions": { @@ -41568,8 +41549,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.44.1.10279", - "templateHash": "4168378797065634217" + "version": "0.43.8.12551", + "templateHash": "276675105610077046" } }, "definitions": { @@ -41809,7 +41790,6 @@ "dependsOn": [ "avmContainerApp", "avmContainerApp_Workflow", - "avmManagedIdentity", "logAnalyticsWorkspace" ] }, @@ -44169,7 +44149,12 @@ "value": "[parameters('enableTelemetry')]" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "managedIdentities": { "value": { @@ -44183,7 +44168,7 @@ "value": [ { "name": "[format('ca-{0}', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessor:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -45771,6 +45756,7 @@ "dependsOn": [ "applicationInsights", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader" ] }, @@ -45800,7 +45786,12 @@ "value": "[parameters('enableTelemetry')]" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -45817,7 +45808,7 @@ "value": [ { "name": "[format('ca-{0}-api', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessorapi:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -47469,6 +47460,7 @@ "dependsOn": [ "applicationInsights", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader" ] }, @@ -47498,7 +47490,12 @@ "value": "[parameters('enableTelemetry')]" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -47546,7 +47543,7 @@ "value": [ { "name": "[format('ca-{0}-web', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessorweb:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -49120,6 +49117,7 @@ "dependsOn": [ "avmContainerApp_API", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader" ] }, @@ -49149,7 +49147,12 @@ "value": "[parameters('enableTelemetry')]" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -49166,7 +49169,7 @@ "value": [ { "name": "[format('ca-{0}-wkfl', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessorworkflow:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -50751,6 +50754,7 @@ "dependsOn": [ "applicationInsights", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader" ] }, @@ -61434,7 +61438,12 @@ "value": "Consumption" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -61451,7 +61460,7 @@ "value": [ { "name": "[format('ca-{0}', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessor:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -63038,6 +63047,7 @@ "applicationInsights", "avmAppConfig", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader", "cognitiveServicePrivateEndpoint" ] @@ -63068,7 +63078,12 @@ "value": "Consumption" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -63085,7 +63100,7 @@ "value": [ { "name": "[format('ca-{0}-api', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessorapi:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -64738,6 +64753,7 @@ "applicationInsights", "avmAppConfig", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader", "cognitiveServicePrivateEndpoint" ] @@ -64768,7 +64784,12 @@ "value": "Consumption" }, "registries": { - "value": null + "value": [ + { + "server": "[reference('avmContainerRegistry').outputs.loginServer.value]", + "identity": "[reference('avmContainerRegistryReader').outputs.resourceId.value]" + } + ] }, "tags": { "value": "[parameters('tags')]" @@ -64785,7 +64806,7 @@ "value": [ { "name": "[format('ca-{0}-wkfl', variables('solutionSuffix'))]", - "image": "[format('{0}/contentprocessorworkflow:{1}', parameters('containerRegistryEndpoint'), parameters('imageTag'))]", + "image": "mcr.microsoft.com/k8se/quickstart:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -66371,6 +66392,7 @@ "applicationInsights", "avmAppConfig", "avmContainerAppEnv", + "avmContainerRegistry", "avmContainerRegistryReader" ] } From 98dac8ca53e422cc959576d62fcc60bcc68e85c8 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 14:02:56 +0530 Subject: [PATCH 06/10] Update deployment guide --- docs/DeploymentGuide.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/DeploymentGuide.md b/docs/DeploymentGuide.md index d9919c44..6c80ac54 100644 --- a/docs/DeploymentGuide.md +++ b/docs/DeploymentGuide.md @@ -301,7 +301,23 @@ azd up ## Step 5: Post-Deployment Configuration -### 5.1 Schema Registration (Automatic) +### 5.1 Run Post Deployment Script + +1. You can run the ACR build and push script from the project root. Use the appropriate command for your shell: + + - For Bash (Linux/macOS/WSL): + + ```bash + bash infra/scripts/acr_build_push.sh + ``` + + - For PowerShell (Windows): + + ```powershell + infra\scripts\acr_build_push.ps1 + ``` + +### 5.2 Schema Registration (Automatic) > Want to customize the schemas for your own documents? [Learn more about adding your own schemas here.](./CustomizeSchemaData.md) From 3f69b91cfae7a58d1bade4803565d27eb89ba73c Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 15:21:47 +0530 Subject: [PATCH 07/10] update scripts --- infra/scripts/acr_build_push.ps1 | 62 -------------------------------- infra/scripts/acr_build_push.sh | 47 ------------------------ 2 files changed, 109 deletions(-) diff --git a/infra/scripts/acr_build_push.ps1 b/infra/scripts/acr_build_push.ps1 index e1f3aef6..71b21dcc 100644 --- a/infra/scripts/acr_build_push.ps1 +++ b/infra/scripts/acr_build_push.ps1 @@ -83,45 +83,6 @@ else { } $IMAGE_TAG = "latest" - -# Detect whether this is a WAF deployment -$DeploymentType = az group show ` - --name $RESOURCE_GROUP ` - --query "tags.Type" ` - -o tsv - -$IsWAF = $DeploymentType -eq "WAF" - -$OriginalPublicNetworkAccess = $null - -if ($IsWAF) { - - Write-Host "" - Write-Host "WAF deployment detected." - - # Save current setting - $OriginalPublicNetworkAccess = az acr show ` - --name $ACR_NAME ` - --resource-group $RESOURCE_GROUP ` - --query "publicNetworkAccess" ` - -o tsv - - if ($OriginalPublicNetworkAccess -eq "Disabled") { - - Write-Host "Temporarily enabling ACR Public Network Access..." - - az acr update ` - --name $ACR_NAME ` - --resource-group $RESOURCE_GROUP ` - --public-network-enabled true - - if ($LASTEXITCODE -ne 0) { - throw "Failed to enable ACR Public Network Access." - } - - Start-Sleep -Seconds 20 - } -} # Get the script directory and navigate to repo root $ScriptDir = $PSScriptRoot @@ -134,7 +95,6 @@ Write-Host " Resource Group: $RESOURCE_GROUP" Write-Host " Image Tag: $IMAGE_TAG" Write-Host "" -try { # ============================================================================= # Step 1: Build and push images to ACR using az acr build # ============================================================================= @@ -254,25 +214,3 @@ try { Write-Host "============================================================" Write-Host "ACR Build and Push - Completed Successfully!" Write-Host "============================================================" - -} -finally { - - if ($IsWAF -and $OriginalPublicNetworkAccess -eq "Disabled") { - - Write-Host "" - Write-Host "Restoring ACR Public Network Access..." - - az acr update ` - --name $ACR_NAME ` - --resource-group $RESOURCE_GROUP ` - --public-network-enabled false - - if ($LASTEXITCODE -eq 0) { - Write-Host "ACR Public Network Access restored." - } - else { - Write-Warning "Failed to restore ACR Public Network Access." - } - } -} \ No newline at end of file diff --git a/infra/scripts/acr_build_push.sh b/infra/scripts/acr_build_push.sh index c191c1b9..8efa859f 100644 --- a/infra/scripts/acr_build_push.sh +++ b/infra/scripts/acr_build_push.sh @@ -82,35 +82,6 @@ DEPLOYMENT_TYPE=$(az group show \ --query "tags.Type" \ -o tsv) -IS_WAF=false - -if [ "$DEPLOYMENT_TYPE" = "WAF" ]; then - IS_WAF=true -fi - -ORIGINAL_PUBLIC_ACCESS="" - -if [ "$IS_WAF" = true ]; then - - ORIGINAL_PUBLIC_ACCESS=$(az acr show \ - --name "$ACR_NAME" \ - --resource-group "$RESOURCE_GROUP" \ - --query publicNetworkAccess \ - -o tsv) - - if [ "$ORIGINAL_PUBLIC_ACCESS" = "Disabled" ]; then - - echo "" - echo "Temporarily enabling ACR Public Network Access..." - - az acr update \ - --name "$ACR_NAME" \ - --resource-group "$RESOURCE_GROUP" \ - --public-network-enabled true - - sleep 20 - fi -fi # Get the directory where this script is located SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -124,24 +95,6 @@ echo " Resource Group: $RESOURCE_GROUP" echo " Image Tag: $IMAGE_TAG" echo "" -cleanup() { - - if [ "$IS_WAF" = true ] && [ "$ORIGINAL_PUBLIC_ACCESS" = "Disabled" ]; then - - echo "" - echo "Restoring ACR Public Network Access..." - - az acr update \ - --name "$ACR_NAME" \ - --resource-group "$RESOURCE_GROUP" \ - --public-network-enabled false - - echo "ACR Public Network Access restored." - - fi -} - -trap cleanup EXIT # ============================================================================= # Step 1: Build and push images to ACR using az acr build # ============================================================================= From 82a77111682e396077a844537335d71b8b5e6aef Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 15:30:06 +0530 Subject: [PATCH 08/10] resolve copilot comment --- infra/scripts/acr_build_push.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/infra/scripts/acr_build_push.sh b/infra/scripts/acr_build_push.sh index 8efa859f..0fdc1143 100644 --- a/infra/scripts/acr_build_push.sh +++ b/infra/scripts/acr_build_push.sh @@ -77,12 +77,6 @@ fi IMAGE_TAG="latest" -DEPLOYMENT_TYPE=$(az group show \ - --name "$RESOURCE_GROUP" \ - --query "tags.Type" \ - -o tsv) - - # Get the directory where this script is located SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Navigate to repo root (infra/scripts -> root) From 60197dcff4a5c4c1f5ceadcef47a15dc43b64613 Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 17:38:26 +0530 Subject: [PATCH 09/10] Update image --- infra/main.bicep | 19 +++++++------------ infra/main.json | 16 ++++++++-------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/infra/main.bicep b/infra/main.bicep index f938bfdc..3ce3db4f 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -716,11 +716,6 @@ module avmAiServices 'modules/account/aifoundry.bicep' = { customSubDomainName: 'aif-${solutionSuffix}' diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspace!.outputs.resourceId }] : null roleAssignments: [ - // { - // principalId: avmManagedIdentity.outputs.principalId - // roleDefinitionIdOrName: '8e3af657-a8ff-443c-a75c-2fe8c4bcb635' // Owner role - // principalType: 'ServicePrincipal' - // } { principalId: avmContainerApp.outputs.systemAssignedMIPrincipalId! roleDefinitionIdOrName: 'Cognitive Services OpenAI User' @@ -898,7 +893,7 @@ module avmContainerApp 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 @@ -972,7 +967,7 @@ module avmContainerApp_API 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-api' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1128,7 +1123,7 @@ module avmContainerApp_Web 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-web' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1197,7 +1192,7 @@ module avmContainerApp_Workflow 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}-wkfl' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1580,7 +1575,7 @@ module avmContainerApp_update 'br/public:avm/res/app/container-app:0.22.1' = { containers: [ { name: 'ca-${solutionSuffix}' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 @@ -1668,7 +1663,7 @@ module avmContainerApp_API_update 'br/public:avm/res/app/container-app:0.22.1' = containers: [ { name: 'ca-${solutionSuffix}-api' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 memory: '8.0Gi' @@ -1808,7 +1803,7 @@ module avmContainerApp_Workflow_update 'br/public:avm/res/app/container-app:0.22 containers: [ { name: 'ca-${solutionSuffix}-wkfl' - image: 'mcr.microsoft.com/k8se/quickstart:latest' + image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' resources: { cpu: 4 memory: '8.0Gi' diff --git a/infra/main.json b/infra/main.json index cd86e87a..e9a0eeea 100644 --- a/infra/main.json +++ b/infra/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.43.8.12551", - "templateHash": "9984485182269407267" + "templateHash": "16102152304744929113" }, "name": "Content Processing Solution Accelerator", "description": "Bicep template to deploy the Content Processing Solution Accelerator with AVM compliance." @@ -44168,7 +44168,7 @@ "value": [ { "name": "[format('ca-{0}', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -45808,7 +45808,7 @@ "value": [ { "name": "[format('ca-{0}-api', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -47543,7 +47543,7 @@ "value": [ { "name": "[format('ca-{0}-web', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -49169,7 +49169,7 @@ "value": [ { "name": "[format('ca-{0}-wkfl', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -61460,7 +61460,7 @@ "value": [ { "name": "[format('ca-{0}', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -63100,7 +63100,7 @@ "value": [ { "name": "[format('ca-{0}-api', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" @@ -64806,7 +64806,7 @@ "value": [ { "name": "[format('ca-{0}-wkfl', variables('solutionSuffix'))]", - "image": "mcr.microsoft.com/k8se/quickstart:latest", + "image": "mcr.microsoft.com/azuredocs/containerapps-helloworld:latest", "resources": { "cpu": 4, "memory": "8.0Gi" From 201fc45a8261e3aeb68169304158de43764b85dc Mon Sep 17 00:00:00 2001 From: chaudhariniraj Date: Fri, 3 Jul 2026 17:54:44 +0530 Subject: [PATCH 10/10] Update bicep build version --- infra/main.json | 50 ++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/infra/main.json b/infra/main.json index e9a0eeea..bb5d61a0 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "16102152304744929113" + "version": "0.44.1.10279", + "templateHash": "13603749367961036380" }, "name": "Content Processing Solution Accelerator", "description": "Bicep template to deploy the Content Processing Solution Accelerator with AVM compliance." @@ -325,8 +325,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "13206959925771644022" + "version": "0.44.1.10279", + "templateHash": "4148028483891244972" } }, "definitions": { @@ -19294,8 +19294,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "13200482898648544945" + "version": "0.44.1.10279", + "templateHash": "14763088429533772999" } }, "parameters": { @@ -23320,8 +23320,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "15729887991536611208" + "version": "0.44.1.10279", + "templateHash": "14944034125601240095" } }, "parameters": { @@ -23924,8 +23924,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "8672669912945312056" + "version": "0.44.1.10279", + "templateHash": "3008626070117491750" }, "name": "Container Registry Module" }, @@ -36171,8 +36171,8 @@ "avmContainerApp_API", "avmContainerApp_Workflow", "avmManagedIdentity", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageQueue)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]", "virtualNetwork" ] }, @@ -36297,8 +36297,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "9621562991003135575" + "version": "0.44.1.10279", + "templateHash": "9717412251971567270" }, "name": "Cognitive Services", "description": "This module deploys a Cognitive Service." @@ -37557,8 +37557,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "8864856500234357706" + "version": "0.44.1.10279", + "templateHash": "7181684108515692296" } }, "definitions": { @@ -39290,8 +39290,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "312284397710022090" + "version": "0.44.1.10279", + "templateHash": "4868310155755856428" } }, "definitions": { @@ -39444,8 +39444,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "276675105610077046" + "version": "0.44.1.10279", + "templateHash": "4168378797065634217" } }, "definitions": { @@ -39662,8 +39662,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "8864856500234357706" + "version": "0.44.1.10279", + "templateHash": "7181684108515692296" } }, "definitions": { @@ -41395,8 +41395,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "312284397710022090" + "version": "0.44.1.10279", + "templateHash": "4868310155755856428" } }, "definitions": { @@ -41549,8 +41549,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "276675105610077046" + "version": "0.44.1.10279", + "templateHash": "4168378797065634217" } }, "definitions": {