@@ -86,8 +86,6 @@ param gptModelVersion string = '2024-08-06'
8686
8787param existingLogAnalyticsWorkspaceId string = ''
8888
89- var useExisting = !empty (existingLogAnalyticsWorkspaceId )
90-
9189var allTags = union (
9290 {
9391 'azd-env-name' : solutionName
@@ -150,8 +148,20 @@ module appIdentity 'br/public:avm/res/managed-identity/user-assigned-identity:0.
150148 enableTelemetry : enableTelemetry
151149 }
152150}
151+ // Extracts subscription, resource group, and workspace name from the resource ID when using an existing Log Analytics workspace
152+ var useExistingLogAnalytics = !empty (existingLogAnalyticsWorkspaceId )
153+
154+ var existingLawSubscription = useExistingLogAnalytics ? split (existingLogAnalyticsWorkspaceId , '/' )[2 ] : ''
155+ var existingLawResourceGroup = useExistingLogAnalytics ? split (existingLogAnalyticsWorkspaceId , '/' )[4 ] : ''
156+ var existingLawName = useExistingLogAnalytics ? split (existingLogAnalyticsWorkspaceId , '/' )[8 ] : ''
157+
158+ resource existingLogAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-08-01' existing = if (useExistingLogAnalytics ) {
159+ name : existingLawName
160+ scope : resourceGroup (existingLawSubscription , existingLawResourceGroup )
161+ }
153162
154- module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.11.2' = if ((enableMonitoring || enablePrivateNetworking ) && !useExisting ) {
163+ // Deploy new Log Analytics workspace only if required and not using existing
164+ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0.11.2' = if ((enableMonitoring || enablePrivateNetworking ) && !useExistingLogAnalytics ) {
155165 name : take ('log-analytics-${resourcesName }-deployment' , 64 )
156166 params : {
157167 name : 'log-${resourcesName }'
@@ -164,7 +174,10 @@ module logAnalyticsWorkspace 'br/public:avm/res/operational-insights/workspace:0
164174 }
165175}
166176
167- var logAnalyticsWorkspaceResourceId = useExisting ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace .outputs .resourceId
177+ // Log Analytics workspace ID, customer ID, and shared key (existing or new)
178+ var logAnalyticsWorkspaceResourceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspaceId : logAnalyticsWorkspace .outputs .resourceId
179+ var LogAnalyticsPrimarySharedKey string = useExistingLogAnalytics ? existingLogAnalyticsWorkspace .listKeys ().primarySharedKey : logAnalyticsWorkspace .outputs .primarySharedKey
180+ var LogAnalyticsWorkspaceId = useExistingLogAnalytics ? existingLogAnalyticsWorkspace .properties .customerId : logAnalyticsWorkspace .outputs .logAnalyticsWorkspaceId
168181
169182module applicationInsights 'br/public:avm/res/insights/component:0.6.0' = if (enableMonitoring ) {
170183 name : take ('app-insights-${resourcesName }-deployment' , 64 )
@@ -340,8 +353,8 @@ module containerAppsEnvironment 'br/public:avm/res/app/managed-environment:0.11.
340353 ? {
341354 destination : 'log-analytics'
342355 logAnalyticsConfiguration : {
343- customerId : logAnalyticsWorkspace . outputs . logAnalyticsWorkspaceId
344- sharedKey : logAnalyticsWorkspace . outputs . primarySharedKey
356+ customerId : LogAnalyticsWorkspaceId
357+ sharedKey : LogAnalyticsPrimarySharedKey
345358 }
346359 }
347360 : {}
0 commit comments