Skip to content

Commit be512bc

Browse files
Merge remote-tracking branch 'origin/main' into PSL-US-18442
2 parents 242709f + e891da2 commit be512bc

20 files changed

Lines changed: 866 additions & 2172 deletions

File tree

.github/workflows/build-docker-image.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ jobs:
3434
login-server: ${{ env.ACR_LOGIN_SERVER }}
3535
username: ${{ env.ACR_USERNAME }}
3636
password: ${{ env.ACR_PASSWORD }}
37-
37+
38+
- name: Get registry
39+
id: registry
40+
run: |
41+
echo "ext_registry=${{ env.ACR_LOGIN_SERVER || 'acrlogin.azurecr.io'}}" >> $GITHUB_OUTPUT
42+
3843
- name: Set Docker image tags
3944
id: tag
4045
run: |
@@ -64,8 +69,8 @@ jobs:
6469
file: ./src/ContentProcessor/Dockerfile
6570
push: ${{ github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo' || github.ref_name == 'hotfix' }}
6671
tags: |
67-
${{ env.ACR_LOGIN_SERVER }}/contentprocessor:${{ env.BASE_TAG }}
68-
${{ env.ACR_LOGIN_SERVER }}/contentprocessor:${{ env.DATE_TAG }}
72+
${{ steps.registry.outputs.ext_registry }}/contentprocessor:${{ env.BASE_TAG }}
73+
${{ steps.registry.outputs.ext_registry }}/contentprocessor:${{ env.DATE_TAG }}
6974
7075
- name: Build and Push ContentProcessorAPI Docker image
7176
uses: docker/build-push-action@v6
@@ -74,8 +79,8 @@ jobs:
7479
file: ./src/ContentProcessorAPI/Dockerfile
7580
push: ${{ github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo' || github.ref_name == 'hotfix' }}
7681
tags: |
77-
${{ env.ACR_LOGIN_SERVER }}/contentprocessorapi:${{ env.BASE_TAG }}
78-
${{ env.ACR_LOGIN_SERVER }}/contentprocessorapi:${{ env.DATE_TAG }}
82+
${{ steps.registry.outputs.ext_registry }}/contentprocessorapi:${{ env.BASE_TAG }}
83+
${{ steps.registry.outputs.ext_registry }}/contentprocessorapi:${{ env.DATE_TAG }}
7984
8085
- name: Build and Push ContentProcessorWeb Docker image
8186
uses: docker/build-push-action@v6
@@ -84,5 +89,5 @@ jobs:
8489
file: ./src/ContentProcessorWeb/Dockerfile
8590
push: ${{ github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo' || github.ref_name == 'hotfix' }}
8691
tags: |
87-
${{ env.ACR_LOGIN_SERVER }}/contentprocessorweb:${{ env.BASE_TAG }}
88-
${{ env.ACR_LOGIN_SERVER }}/contentprocessorweb:${{ env.DATE_TAG }}
92+
${{ steps.registry.outputs.ext_registry }}/contentprocessorweb:${{ env.BASE_TAG }}
93+
${{ steps.registry.outputs.ext_registry }}/contentprocessorweb:${{ env.DATE_TAG }}

.github/workflows/deploy.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,9 @@ jobs:
7474
id: generate_rg_name
7575
run: |
7676
echo "Generating a unique resource group name..."
77-
TIMESTAMP=$(date +%Y%m%d%H%M)
78-
# Define the common part and add a "cps-" prefix
79-
COMMON_PART="automation"
80-
UNIQUE_RG_NAME="cps-${COMMON_PART}${TIMESTAMP}"
77+
ACCL_NAME="cpc" # Account name as specified
78+
SHORT_UUID=$(uuidgen | cut -d'-' -f1)
79+
UNIQUE_RG_NAME="arg-${ACCL_NAME}-${SHORT_UUID}"
8180
echo "RESOURCE_GROUP_NAME=${UNIQUE_RG_NAME}" >> $GITHUB_ENV
8281
echo "Generated Resource_GROUP_PREFIX: ${UNIQUE_RG_NAME}"
8382

docs/CustomizingAzdParameters.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,9 @@ azd env set AZURE_ENV_MODEL_CAPACITY '30'
3434
Change if the deployment should use a local build of the containers
3535
```shell
3636
azd env set USE_LOCAL_BUILD 'false'
37+
```
38+
39+
Set the Log Analytics Workspace Id if you need to reuse the existing workspace which is already existing
40+
```shell
41+
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID '<Existing Log Analytics Workspace Id>'
3742
```

docs/DeploymentGuide.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ When you start the deployment, most parameters will have **default values**, but
119119
| **Deployment Type** | Select from a drop-down list. | GlobalStandard |
120120
| **GPT Model** | Choose from **gpt-4o**. | gpt-4o |
121121
| **GPT Model Deployment Capacity** | Configure capacity for **GPT models**. | 30k |
122+
| **Existing Log analytics workspace** | To reuse the existing Log analytics workspace Id. | |
122123

123124
</details>
124125

infra/container_app/deploy_container_app_env.bicep

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ param containerEnvName string
33
param location string
44

55
param logAnalyticsWorkspaceName string
6+
param logAnalyticsWorkspaceResourceGroup string
67

78
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = {
89
name: logAnalyticsWorkspaceName
10+
scope: resourceGroup(logAnalyticsWorkspaceResourceGroup)
911
}
1012

1113
resource containerRegistryReader 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = {

infra/deploy_app_insights.bicep

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,18 @@ targetScope = 'resourceGroup'
22

33
param applicationInsightsName string
44
param logAnalyticsWorkspaceName string
5+
param existingLogAnalyticsWorkspaceId string = ''
56

6-
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = {
7+
var useExisting = !empty(existingLogAnalyticsWorkspaceId)
8+
var existingLawResourceGroup = useExisting ? split(existingLogAnalyticsWorkspaceId, '/')[4] : ''
9+
var existingLawName = useExisting ? split(existingLogAnalyticsWorkspaceId, '/')[8] : ''
10+
11+
resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExisting) {
12+
name: existingLawName
13+
scope: resourceGroup(existingLawResourceGroup)
14+
}
15+
16+
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = if (!useExisting) {
717
name: logAnalyticsWorkspaceName
818
location: resourceGroup().location
919
properties: any({
@@ -32,9 +42,10 @@ resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
3242
publicNetworkAccessForIngestion: 'Enabled'
3343
publicNetworkAccessForQuery: 'Disabled'
3444
Request_Source: 'rest'
35-
WorkspaceResourceId: logAnalyticsWorkspace.id
45+
WorkspaceResourceId: useExisting ? existingLogAnalyticsWorkspace.id : logAnalyticsWorkspace.id
3646
}
3747
}
3848

3949
output id string = applicationInsights.id
40-
output logAnalyticsWorkspaceName string = logAnalyticsWorkspace.name
50+
output logAnalyticsWorkspaceName string = useExisting ? existingLogAnalyticsWorkspace.name : logAnalyticsWorkspace.name
51+
output logAnalyticsWorkspaceResourceGroup string = useExisting ? existingLawResourceGroup : resourceGroup().name

infra/main.bicep

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ param maxReplicaContainerWeb int = 1
6565
@description('Set this flag to true only if you are deplpoying from Local')
6666
param useLocalBuild string = 'false'
6767

68+
@description('Optional: Existing Log Analytics Workspace Resource ID')
69+
param existingLogAnalyticsWorkspaceId string = ''
70+
6871
var containerImageEndPoint = 'cpscontainerreg.azurecr.io'
6972
var resourceGroupLocation = resourceGroup().location
7073

@@ -100,6 +103,7 @@ module kvault 'deploy_keyvault.bicep' = {
100103
module applicationInsights 'deploy_app_insights.bicep' = {
101104
name: 'deploy_app_insights'
102105
params: {
106+
existingLogAnalyticsWorkspaceId: existingLogAnalyticsWorkspaceId
103107
applicationInsightsName: '${abbrs.managementGovernance.applicationInsights}${solutionPrefix}'
104108
logAnalyticsWorkspaceName: '${abbrs.managementGovernance.logAnalyticsWorkspace}${solutionPrefix}'
105109
}
@@ -149,6 +153,7 @@ module containerAppEnv './container_app/deploy_container_app_env.bicep' = {
149153
containerEnvName: '${abbrs.containers.containerAppsEnvironment}${solutionPrefix}'
150154
location: secondaryLocation
151155
logAnalyticsWorkspaceName: applicationInsights.outputs.logAnalyticsWorkspaceName
156+
logAnalyticsWorkspaceResourceGroup: applicationInsights.outputs.logAnalyticsWorkspaceResourceGroup
152157
}
153158
}
154159

infra/main.bicepparam

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ param gptModelName = readEnvironmentVariable('AZURE_ENV_MODEL_NAME', 'gpt-4o')
77
param gptModelVersion = readEnvironmentVariable('AZURE_ENV_MODEL_VERSION', '2024-08-06')
88
param gptDeploymentCapacity = int(readEnvironmentVariable('AZURE_ENV_MODEL_CAPACITY', '30'))
99
param useLocalBuild = readEnvironmentVariable('USE_LOCAL_BUILD', 'false')
10+
param existingLogAnalyticsWorkspaceId = readEnvironmentVariable('AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID', '')

infra/main.json

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.35.1.17967",
8-
"templateHash": "708671422034288821"
8+
"templateHash": "12841296004328754819"
99
}
1010
},
1111
"parameters": {
@@ -121,6 +121,13 @@
121121
"metadata": {
122122
"description": "Set this flag to true only if you are deplpoying from Local"
123123
}
124+
},
125+
"existingLogAnalyticsWorkspaceId": {
126+
"type": "string",
127+
"defaultValue": "",
128+
"metadata": {
129+
"description": "Optional: Existing Log Analytics Workspace Resource ID"
130+
}
124131
}
125132
},
126133
"variables": {
@@ -565,6 +572,9 @@
565572
},
566573
"mode": "Incremental",
567574
"parameters": {
575+
"existingLogAnalyticsWorkspaceId": {
576+
"value": "[parameters('existingLogAnalyticsWorkspaceId')]"
577+
},
568578
"applicationInsightsName": {
569579
"value": "[format('{0}{1}', variables('abbrs').managementGovernance.applicationInsights, variables('solutionPrefix'))]"
570580
},
@@ -579,7 +589,7 @@
579589
"_generator": {
580590
"name": "bicep",
581591
"version": "0.35.1.17967",
582-
"templateHash": "16868995909099501999"
592+
"templateHash": "4417744862326794406"
583593
}
584594
},
585595
"parameters": {
@@ -588,10 +598,20 @@
588598
},
589599
"logAnalyticsWorkspaceName": {
590600
"type": "string"
601+
},
602+
"existingLogAnalyticsWorkspaceId": {
603+
"type": "string",
604+
"defaultValue": ""
591605
}
592606
},
607+
"variables": {
608+
"useExisting": "[not(empty(parameters('existingLogAnalyticsWorkspaceId')))]",
609+
"existingLawResourceGroup": "[if(variables('useExisting'), split(parameters('existingLogAnalyticsWorkspaceId'), '/')[4], '')]",
610+
"existingLawName": "[if(variables('useExisting'), split(parameters('existingLogAnalyticsWorkspaceId'), '/')[8], '')]"
611+
},
593612
"resources": [
594613
{
614+
"condition": "[not(variables('useExisting'))]",
595615
"type": "Microsoft.OperationalInsights/workspaces",
596616
"apiVersion": "2023-09-01",
597617
"name": "[parameters('logAnalyticsWorkspaceName')]",
@@ -623,7 +643,7 @@
623643
"publicNetworkAccessForIngestion": "Enabled",
624644
"publicNetworkAccessForQuery": "Disabled",
625645
"Request_Source": "rest",
626-
"WorkspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName'))]"
646+
"WorkspaceResourceId": "[if(variables('useExisting'), extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, variables('existingLawResourceGroup')), 'Microsoft.OperationalInsights/workspaces', variables('existingLawName')), resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName')))]"
627647
},
628648
"dependsOn": [
629649
"[resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName'))]"
@@ -637,7 +657,11 @@
637657
},
638658
"logAnalyticsWorkspaceName": {
639659
"type": "string",
640-
"value": "[parameters('logAnalyticsWorkspaceName')]"
660+
"value": "[if(variables('useExisting'), variables('existingLawName'), parameters('logAnalyticsWorkspaceName'))]"
661+
},
662+
"logAnalyticsWorkspaceResourceGroup": {
663+
"type": "string",
664+
"value": "[if(variables('useExisting'), variables('existingLawResourceGroup'), resourceGroup().name)]"
641665
}
642666
}
643667
}
@@ -1460,6 +1484,9 @@
14601484
},
14611485
"logAnalyticsWorkspaceName": {
14621486
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'deploy_app_insights'), '2022-09-01').outputs.logAnalyticsWorkspaceName.value]"
1487+
},
1488+
"logAnalyticsWorkspaceResourceGroup": {
1489+
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'deploy_app_insights'), '2022-09-01').outputs.logAnalyticsWorkspaceResourceGroup.value]"
14631490
}
14641491
},
14651492
"template": {
@@ -1469,6 +1496,8 @@
14691496
"_generator": {
14701497
"name": "bicep",
14711498
"version": "0.35.1.17967",
1499+
"templateHash": "12849612969576340024"
1500+
"version": "0.35.1.17967",
14721501
"templateHash": "1901255801577127677"
14731502
}
14741503
},
@@ -1484,6 +1513,9 @@
14841513
},
14851514
"logAnalyticsWorkspaceName": {
14861515
"type": "string"
1516+
},
1517+
"logAnalyticsWorkspaceResourceGroup": {
1518+
"type": "string"
14871519
}
14881520
},
14891521
"resources": [
@@ -1506,8 +1538,8 @@
15061538
"appLogsConfiguration": {
15071539
"destination": "log-analytics",
15081540
"logAnalyticsConfiguration": {
1509-
"customerId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName')), '2023-09-01').customerId]",
1510-
"sharedKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName')), '2023-09-01').primarySharedKey]"
1541+
"customerId": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, parameters('logAnalyticsWorkspaceResourceGroup')), 'Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName')), '2023-09-01').customerId]",
1542+
"sharedKey": "[listKeys(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, parameters('logAnalyticsWorkspaceResourceGroup')), 'Microsoft.OperationalInsights/workspaces', parameters('logAnalyticsWorkspaceName')), '2023-09-01').primarySharedKey]"
15111543
}
15121544
},
15131545
"zoneRedundant": false,

src/ContentProcessor/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ dependencies = [
1919
"pydantic-settings>=2.7.1",
2020
"pymongo>=4.11.2",
2121
"python-dotenv>=1.0.1",
22-
"semantic-kernel>=1.26.1",
2322
"tiktoken>=0.9.0",
2423
]
2524

0 commit comments

Comments
 (0)