@@ -16,6 +16,9 @@ param appInsightsName string
1616@description ('The name of the Log Analytics Workspace resource' )
1717param logAnalyticsWorkspaceName string
1818
19+ @description ('Optional: Existing Log Analytics Workspace Resource ID' )
20+ param existingLogAnalyticsWorkspaceId string = ''
21+
1922@description ('The location for the resources' )
2023param location string
2124
@@ -49,7 +52,12 @@ param requestSource string = 'rest'
4952@description ('Tags to be applied to the resources' )
5053param 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+
6477module 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+
8196output applicationInsightsId string = avmApplicationInsights .outputs .resourceId
8297output 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