Skip to content

Commit 8e9b235

Browse files
Merge pull request #148 from microsoft/feature/avm-waf-aligned
fix: EXP Changes for log analytics workspace
2 parents b7fd9fb + 9b144e7 commit 8e9b235

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

infra/main.bicep

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ param gptModelVersion string = '2024-08-06'
8686

8787
param existingLogAnalyticsWorkspaceId string = ''
8888

89-
var useExisting = !empty(existingLogAnalyticsWorkspaceId)
90-
9189
var 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

169182
module 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

Comments
 (0)