Skip to content

Commit 38b2452

Browse files
feat: Implemented EXP changes into FDP
1 parent abda030 commit 38b2452

3 files changed

Lines changed: 26 additions & 5 deletions

File tree

infra/main.bicep

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ param tags object = {
4545
@description('Set to true to use local build for container app images, otherwise use container registry images')
4646
param useLocalBuild bool = false
4747

48+
@description('Optional: Existing Log Analytics Workspace Resource ID')
49+
param existingLogAnalyticsWorkspaceId string = ''
50+
4851
// ========== Solution Prefix Variable ========== //
4952
var solution_prefix = 'cps-${padLeft(take(toLower(uniqueString(subscription().id, environmentName, resourceGroup().location)), 12), 12, '0')}'
5053
// ========== Resource Naming Abbreviations ========== //
@@ -297,6 +300,7 @@ module avmPrivateDnsZoneAiFoundryWorkspace 'br/public:avm/res/network/private-dn
297300
var cosmosdbMongoPrivateDnsZones = {
298301
'privatelink.mongo.cosmos.azure.com': 'cosmosdb'
299302
}
303+
300304
module avmPrivateDnsZoneCosmosMongoDB 'br/public:avm/res/network/private-dns-zone:0.7.1' = if (enablePrivateNetworking ) {
301305
name: 'private-dns-zone-cosmos-mongo'
302306
params: {
@@ -388,6 +392,7 @@ module avmAppInsightsLogAnalyticsWorkspace './modules/app-insights.bicep' = {
388392
flowType: 'Bluefield'
389393
kind: 'web'
390394
logAnalyticsWorkspaceName: '${namingAbbrs.managementGovernance.logAnalyticsWorkspace}${solution_prefix}'
395+
existingLogAnalyticsWorkspaceId: existingLogAnalyticsWorkspaceId
391396
publicNetworkAccessForQuery: 'Enabled'
392397
requestSource: 'rest'
393398
retentionInDays: 30

infra/main.bicepparam

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ param deploymentType = readEnvironmentVariable('AZURE_ENV_MODEL_DEPLOYMENT_TYPE'
66
param gptModelName = readEnvironmentVariable('AZURE_ENV_MODEL_NAME', 'gpt-4o')
77
param gptDeploymentCapacity = int(readEnvironmentVariable('AZURE_ENV_MODEL_CAPACITY', '30'))
88
param useLocalBuild = bool(readEnvironmentVariable('USE_LOCAL_BUILD', 'false'))
9+
param existingLogAnalyticsWorkspaceId = readEnvironmentVariable('AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID', '')

infra/modules/app-insights.bicep

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ param appInsightsName string
1616
@description('The name of the Log Analytics Workspace resource')
1717
param logAnalyticsWorkspaceName string
1818

19+
@description('Optional: Existing Log Analytics Workspace Resource ID')
20+
param existingLogAnalyticsWorkspaceId string = ''
21+
1922
@description('The location for the resources')
2023
param location string
2124

@@ -49,7 +52,12 @@ param requestSource string = 'rest'
4952
@description('Tags to be applied to the resources')
5053
param tags object = {}
5154

52-
module avmLogAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.11.2' = {
55+
var useExistingWorkspace = existingLogAnalyticsWorkspaceId != ''
56+
var existingLawSubscription = useExistingWorkspace ? split(existingLogAnalyticsWorkspaceId, '/')[2] : ''
57+
var existingLawResourceGroup = useExistingWorkspace ? split(existingLogAnalyticsWorkspaceId, '/')[4] : ''
58+
var existingLawName = useExistingWorkspace ? split(existingLogAnalyticsWorkspaceId, '/')[8] : ''
59+
60+
module avmLogAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.11.2' = if (!useExistingWorkspace) {
5361
name: 'deploy_log_analytics_workspace'
5462
params: {
5563
name: logAnalyticsWorkspaceName
@@ -61,12 +69,17 @@ module avmLogAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspac
6169
}
6270
}
6371

72+
resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = if (useExistingWorkspace) {
73+
name: existingLawName
74+
scope: resourceGroup(existingLawSubscription ,existingLawResourceGroup)
75+
}
76+
6477
module avmApplicationInsights 'br/public:avm/res/insights/component:0.6.0' = {
6578
name: 'deploy_application_insights'
6679
params: {
6780
name: appInsightsName
6881
location: location
69-
workspaceResourceId: avmLogAnalyticsWorkspace.outputs.resourceId
82+
workspaceResourceId: useExistingWorkspace ? existingLogAnalyticsWorkspaceId : avmLogAnalyticsWorkspace.outputs.resourceId
7083
kind: kind
7184
applicationType: applicationType
7285
disableIpMasking: disableIpMasking
@@ -78,9 +91,11 @@ module avmApplicationInsights 'br/public:avm/res/insights/component:0.6.0' = {
7891
}
7992
}
8093

94+
var lawKeys = useExistingWorkspace ? listKeys(existingLogAnalyticsWorkspace.id, '2020-08-01') : null
95+
8196
output applicationInsightsId string = avmApplicationInsights.outputs.resourceId
8297
output logAnalyticsWorkspaceId string = avmLogAnalyticsWorkspace.outputs.logAnalyticsWorkspaceId
83-
output logAnalyticsWorkspaceResourceId string = avmLogAnalyticsWorkspace.outputs.resourceId
84-
output logAnalyticsWorkspaceName string = avmLogAnalyticsWorkspace.outputs.name
98+
output logAnalyticsWorkspaceResourceId string = useExistingWorkspace ? existingLogAnalyticsWorkspaceId : avmLogAnalyticsWorkspace.outputs.resourceId
99+
output logAnalyticsWorkspaceName string = useExistingWorkspace ? existingLogAnalyticsWorkspace.name : avmLogAnalyticsWorkspace.outputs.name
85100
@secure()
86-
output logAnalyticsWorkspacePrimaryKey string = avmLogAnalyticsWorkspace.outputs.primarySharedKey
101+
output logAnalyticsWorkspacePrimaryKey string = useExistingWorkspace ? lawKeys.primarySharedKey : avmLogAnalyticsWorkspace.outputs.primarySharedKey

0 commit comments

Comments
 (0)