Created
October 29, 2022 11:09
-
-
Save jonathanbourke/910c5de938a2888432bc883157a04b02 to your computer and use it in GitHub Desktop.
Azure ARM Template to deploy Sentinel Data Connector to Salesforce over private endpoints.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"functionAppName": { | |
"type": "string", | |
"defaultValue": "[format('func-{0}', uniqueString(resourceGroup().id))]", | |
"metadata": { | |
"description": "The name of the Azure Function app which will connect to Salesforce." | |
} | |
}, | |
"location": { | |
"type": "string", | |
"defaultValue": "[resourceGroup().location]", | |
"metadata": { | |
"description": "The location into which the resources should be deployed." | |
} | |
}, | |
"functionAppPlanName": { | |
"type": "string", | |
"defaultValue": "[format('asp-{0}', uniqueString(resourceGroup().id))]", | |
"metadata": { | |
"description": "The name of the Azure Function hosting plan." | |
} | |
}, | |
"functionPlanOS": { | |
"type": "string", | |
"defaultValue": "Linux", | |
"allowedValues": [ | |
"Windows", | |
"Linux" | |
], | |
"metadata": { | |
"description": "Specifies the OS used for the Azure Function hosting plan." | |
} | |
}, | |
"functionAppPlanSku": { | |
"type": "string", | |
"defaultValue": "EP1", | |
"allowedValues": [ | |
"EP1", | |
"EP2", | |
"EP3" | |
], | |
"metadata": { | |
"description": "Specifies the Azure Function hosting plan SKU." | |
} | |
}, | |
"functionStorageAccountName": { | |
"type": "string", | |
"defaultValue": "[format('st{0}', uniqueString(resourceGroup().id))]", | |
"metadata": { | |
"description": "The name of the backend Azure storage account used by the Azure Function app." | |
} | |
}, | |
"vnetName": { | |
"type": "string", | |
"defaultValue": "[format('vnet-{0}', uniqueString(resourceGroup().id))]", | |
"metadata": { | |
"description": "The name of the virtual network for virtual network integration." | |
} | |
}, | |
"functionSubnetName": { | |
"type": "string", | |
"defaultValue": "snet-func", | |
"metadata": { | |
"description": "The name of the virtual network subnet to be associated with the Azure Function app." | |
} | |
}, | |
"privateEndpointSubnetName": { | |
"type": "string", | |
"defaultValue": "snet-pe", | |
"metadata": { | |
"description": "The name of the virtual network subnet used for allocating IP addresses for private endpoints." | |
} | |
}, | |
"vnetAddressPrefix": { | |
"type": "string", | |
"defaultValue": "10.100.0.0/16", | |
"metadata": { | |
"description": "The IP adddress space used for the virtual network." | |
} | |
}, | |
"functionSubnetAddressPrefix": { | |
"type": "string", | |
"defaultValue": "10.100.0.0/24", | |
"metadata": { | |
"description": "The IP address space used for the Azure Function integration subnet." | |
} | |
}, | |
"privateEndpointSubnetAddressPrefix": { | |
"type": "string", | |
"defaultValue": "10.100.1.0/24", | |
"metadata": { | |
"description": "The IP address space used for the private endpoints." | |
} | |
}, | |
"WorkspaceID": { | |
"type": "string", | |
"defaultValue": "<workspaceID>" | |
}, | |
"WorkspaceKey": { | |
"type": "securestring", | |
"defaultValue": "<workspaceKey>" | |
}, | |
"SalesforceUser": { | |
"type": "string", | |
"defaultValue": "<SalesforceUser>" | |
}, | |
"SalesforcePass": { | |
"type": "securestring", | |
"defaultValue": "<SalesforcePass>" | |
}, | |
"SalesforceSecurityToken": { | |
"type": "securestring", | |
"defaultValue": "<SalesforceSecurityToken>", | |
"metadata": { | |
"description": "Your Salesforce security token is a case-sensitive alphanumeric key that is used in combination with a password to access Salesforce via API." | |
} | |
}, | |
"SalesforceTokenUri": { | |
"type": "string", | |
"defaultValue": "https://test.salesforce.com/services/oauth2/token", | |
"metadata": { | |
"description": "Use default value for Sandbox Production environment, for Production environment update accordingly." | |
} | |
}, | |
"SalesforceConsumerKey": { | |
"type": "securestring", | |
"defaultValue": "<SalesforceConsumerKey>" | |
}, | |
"SalesforceConsumerSecret": { | |
"type": "securestring", | |
"defaultValue": "<SalesforceConsumerSecret>" | |
}, | |
"TimeInterval": { | |
"type": "string", | |
"allowedValues": [ | |
"hourly", | |
"daily" | |
], | |
"defaultValue": "hourly", | |
"metadata": { | |
"description": "Select the Interval." | |
} | |
} | |
}, | |
"functions": [], | |
"variables": { | |
"FunctionName": "[concat(toLower(parameters('FunctionAppName')), uniqueString(resourceGroup().id))]", | |
"StorageSuffix": "[environment().suffixes.storage]", | |
"cron": "[if(equals(parameters('TimeInterval'),'daily'), '0 0 0 * * *', '0 0 * * * *')]", | |
"applicationInsightsName": "[format('appi-{0}', uniqueString(resourceGroup().id))]", | |
"privateStorageFileDnsZoneName": "[format('privatelink.file.{0}', environment().suffixes.storage)]", | |
"privateEndpointStorageFileName": "[format('{0}-file-private-endpoint', parameters('functionStorageAccountName'))]", | |
"privateStorageTableDnsZoneName": "[format('privatelink.table.{0}', environment().suffixes.storage)]", | |
"privateEndpointStorageTableName": "[format('{0}-table-private-endpoint', parameters('functionStorageAccountName'))]", | |
"privateStorageBlobDnsZoneName": "[format('privatelink.blob.{0}', environment().suffixes.storage)]", | |
"privateEndpointStorageBlobName": "[format('{0}-blob-private-endpoint', parameters('functionStorageAccountName'))]", | |
"privateStorageQueueDnsZoneName": "[format('privatelink.queue.{0}', environment().suffixes.storage)]", | |
"privateEndpointStorageQueueName": "[format('{0}-queue-private-endpoint', parameters('functionStorageAccountName'))]", | |
"functionContentShareName": "function-content-share", | |
"isReserved": "[if(equals(parameters('functionPlanOS'), 'Linux'), true(), false())]", | |
"LogAnaltyicsUri": "[replace(environment().portal, 'https://portal', concat('https://', toLower(parameters('WorkspaceID')), '.ods.opinsights'))]" | |
}, | |
"resources": [ | |
{ | |
"type": "Microsoft.Network/virtualNetworks", | |
"apiVersion": "2020-07-01", | |
"name": "[parameters('vnetName')]", | |
"location": "[parameters('location')]", | |
"properties": { | |
"addressSpace": { | |
"addressPrefixes": [ | |
"[parameters('vnetAddressPrefix')]" | |
] | |
}, | |
"subnets": [ | |
{ | |
"name": "[parameters('functionSubnetName')]", | |
"properties": { | |
"privateEndpointNetworkPolicies": "Enabled", | |
"privateLinkServiceNetworkPolicies": "Enabled", | |
"delegations": [ | |
{ | |
"name": "webapp", | |
"properties": { | |
"serviceName": "Microsoft.Web/serverFarms" | |
} | |
} | |
], | |
"addressPrefix": "[parameters('functionSubnetAddressPrefix')]" | |
} | |
}, | |
{ | |
"name": "[parameters('privateEndpointSubnetName')]", | |
"properties": { | |
"privateEndpointNetworkPolicies": "Disabled", | |
"privateLinkServiceNetworkPolicies": "Enabled", | |
"addressPrefix": "[parameters('privateEndpointSubnetAddressPrefix')]" | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones", | |
"apiVersion": "2020-06-01", | |
"name": "[variables('privateStorageFileDnsZoneName')]", | |
"location": "global", | |
"properties": {} | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones", | |
"apiVersion": "2020-06-01", | |
"name": "[variables('privateStorageBlobDnsZoneName')]", | |
"location": "global", | |
"properties": {} | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones", | |
"apiVersion": "2020-06-01", | |
"name": "[variables('privateStorageQueueDnsZoneName')]", | |
"location": "global", | |
"properties": {} | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones", | |
"apiVersion": "2020-06-01", | |
"name": "[variables('privateStorageTableDnsZoneName')]", | |
"location": "global", | |
"properties": {} | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", | |
"apiVersion": "2020-06-01", | |
"name": "[format('{0}/{1}', variables('privateStorageFileDnsZoneName'), format('{0}-link', variables('privateStorageFileDnsZoneName')))]", | |
"location": "global", | |
"properties": { | |
"registrationEnabled": false, | |
"virtualNetwork": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageFileDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", | |
"apiVersion": "2020-06-01", | |
"name": "[format('{0}/{1}', variables('privateStorageBlobDnsZoneName'), format('{0}-link', variables('privateStorageBlobDnsZoneName')))]", | |
"location": "global", | |
"properties": { | |
"registrationEnabled": false, | |
"virtualNetwork": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageBlobDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", | |
"apiVersion": "2020-06-01", | |
"name": "[format('{0}/{1}', variables('privateStorageTableDnsZoneName'), format('{0}-link', variables('privateStorageTableDnsZoneName')))]", | |
"location": "global", | |
"properties": { | |
"registrationEnabled": false, | |
"virtualNetwork": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageTableDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", | |
"apiVersion": "2020-06-01", | |
"name": "[format('{0}/{1}', variables('privateStorageQueueDnsZoneName'), format('{0}-link', variables('privateStorageQueueDnsZoneName')))]", | |
"location": "global", | |
"properties": { | |
"registrationEnabled": false, | |
"virtualNetwork": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageQueueDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", | |
"apiVersion": "2021-02-01", | |
"name": "[format('{0}/{1}', variables('privateEndpointStorageFileName'), 'filePrivateDnsZoneGroup')]", | |
"properties": { | |
"privateDnsZoneConfigs": [ | |
{ | |
"name": "config", | |
"properties": { | |
"privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageFileDnsZoneName'))]" | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageFileDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointStorageFileName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", | |
"apiVersion": "2021-02-01", | |
"name": "[format('{0}/{1}', variables('privateEndpointStorageBlobName'), 'blobPrivateDnsZoneGroup')]", | |
"properties": { | |
"privateDnsZoneConfigs": [ | |
{ | |
"name": "config", | |
"properties": { | |
"privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageBlobDnsZoneName'))]" | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageBlobDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointStorageBlobName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", | |
"apiVersion": "2021-02-01", | |
"name": "[format('{0}/{1}', variables('privateEndpointStorageTableName'), 'tablePrivateDnsZoneGroup')]", | |
"properties": { | |
"privateDnsZoneConfigs": [ | |
{ | |
"name": "config", | |
"properties": { | |
"privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageTableDnsZoneName'))]" | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageTableDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointStorageTableName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups", | |
"apiVersion": "2021-02-01", | |
"name": "[format('{0}/{1}', variables('privateEndpointStorageQueueName'), 'queuePrivateDnsZoneGroup')]", | |
"properties": { | |
"privateDnsZoneConfigs": [ | |
{ | |
"name": "config", | |
"properties": { | |
"privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageQueueDnsZoneName'))]" | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Network/privateDnsZones', variables('privateStorageQueueDnsZoneName'))]", | |
"[resourceId('Microsoft.Network/privateEndpoints', variables('privateEndpointStorageQueueName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints", | |
"apiVersion": "2021-02-01", | |
"name": "[variables('privateEndpointStorageFileName')]", | |
"location": "[parameters('location')]", | |
"properties": { | |
"subnet": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('privateEndpointSubnetName'))]" | |
}, | |
"privateLinkServiceConnections": [ | |
{ | |
"name": "MyStorageFilePrivateLinkConnection", | |
"properties": { | |
"privateLinkServiceId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"groupIds": [ | |
"file" | |
] | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints", | |
"apiVersion": "2021-02-01", | |
"name": "[variables('privateEndpointStorageTableName')]", | |
"location": "[parameters('location')]", | |
"properties": { | |
"subnet": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('privateEndpointSubnetName'))]" | |
}, | |
"privateLinkServiceConnections": [ | |
{ | |
"name": "MyStorageTablePrivateLinkConnection", | |
"properties": { | |
"privateLinkServiceId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"groupIds": [ | |
"table" | |
] | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints", | |
"apiVersion": "2021-02-01", | |
"name": "[variables('privateEndpointStorageQueueName')]", | |
"location": "[parameters('location')]", | |
"properties": { | |
"subnet": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('privateEndpointSubnetName'))]" | |
}, | |
"privateLinkServiceConnections": [ | |
{ | |
"name": "MyStorageQueuePrivateLinkConnection", | |
"properties": { | |
"privateLinkServiceId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"groupIds": [ | |
"queue" | |
] | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Network/privateEndpoints", | |
"apiVersion": "2021-02-01", | |
"name": "[variables('privateEndpointStorageBlobName')]", | |
"location": "[parameters('location')]", | |
"properties": { | |
"subnet": { | |
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('privateEndpointSubnetName'))]" | |
}, | |
"privateLinkServiceConnections": [ | |
{ | |
"name": "MyStorageBlobPrivateLinkConnection", | |
"properties": { | |
"privateLinkServiceId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"groupIds": [ | |
"blob" | |
] | |
} | |
} | |
] | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"apiVersion": "2021-02-01", | |
"name": "[parameters('functionStorageAccountName')]", | |
"location": "[parameters('location')]", | |
"kind": "StorageV2", | |
"sku": { | |
"name": "Standard_LRS", | |
"tier": "Standard" | |
}, | |
"properties": { | |
"networkAcls": { | |
"bypass": "None", | |
"defaultAction": "Deny" | |
} | |
} | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts/fileServices/shares", | |
"apiVersion": "2021-04-01", | |
"name": "[format('{0}/default/{1}', parameters('functionStorageAccountName'), variables('functionContentShareName'))]", | |
"dependsOn": [ | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Insights/components", | |
"apiVersion": "2020-02-02", | |
"name": "[variables('applicationInsightsName')]", | |
"location": "[parameters('location')]", | |
"kind": "web", | |
"properties": { | |
"Application_Type": "web" | |
} | |
}, | |
{ | |
"type": "Microsoft.Web/serverfarms", | |
"apiVersion": "2021-01-01", | |
"name": "[parameters('functionAppPlanName')]", | |
"location": "[parameters('location')]", | |
"sku": { | |
"name": "[parameters('functionAppPlanSku')]", | |
"tier": "ElasticPremium", | |
"size": "[parameters('functionAppPlanSku')]", | |
"family": "EP" | |
}, | |
"kind": "elastic", | |
"properties": { | |
"maximumElasticWorkerCount": 20, | |
"reserved": "[variables('isReserved')]" | |
} | |
}, | |
{ | |
"type": "Microsoft.Web/sites", | |
"apiVersion": "2021-01-01", | |
"name": "[parameters('functionAppName')]", | |
"location": "[parameters('location')]", | |
"kind": "[if(variables('isReserved'), 'functionapp,linux', 'functionapp')]", | |
"properties": { | |
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('functionAppPlanName'))]", | |
"reserved": "[variables('isReserved')]", | |
"siteConfig": { | |
"functionsRuntimeScaleMonitoringEnabled": true, | |
"linuxFxVersion": "[if(variables('isReserved'), 'dotnet|3.1', json('null'))]", | |
"appSettings": [ | |
{ | |
"name": "APPINSIGHTS_INSTRUMENTATIONKEY", | |
"value": "[reference(resourceId('Microsoft.Insights/components', variables('applicationInsightsName'))).InstrumentationKey]" | |
}, | |
{ | |
"name": "AzureWebJobsStorage", | |
"value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('functionStorageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName')), '2021-02-01').keys[0].value)]" | |
}, | |
{ | |
"name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING", | |
"value": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('functionStorageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName')), '2021-02-01').keys[0].value)]" | |
}, | |
{ | |
"name": "FUNCTIONS_EXTENSION_VERSION", | |
"value": "~3" | |
}, | |
{ | |
"name": "FUNCTIONS_WORKER_RUNTIME", | |
"value": "python" | |
}, | |
{ | |
"name": "WEBSITE_VNET_ROUTE_ALL", | |
"value": "1" | |
}, | |
{ | |
"name": "WEBSITE_CONTENTOVERVNET", | |
"value": "1" | |
}, | |
{ | |
"name": "WEBSITE_CONTENTSHARE", | |
"value": "[variables('functionContentShareName')]" | |
}, | |
{ | |
"name": "WorkspaceID", | |
"value": "[parameters('WorkspaceID')]" | |
}, | |
{ | |
"name": "WorkspaceKey", | |
"value": "[parameters('WorkspaceKey')]" | |
}, | |
{ | |
"name": "SalesforceUser", | |
"value": "[parameters('SalesforceUser')]" | |
}, | |
{ | |
"name": "SalesforcePass", | |
"value": "[parameters('SalesforcePass')]" | |
}, | |
{ | |
"name": "SalesforceTokenUri", | |
"value": "[parameters('SalesforceTokenUri')]" | |
}, | |
{ | |
"name": "SalesforceSecurityToken", | |
"value": "[parameters('SalesforceSecurityToken')]" | |
}, | |
{ | |
"name": "SalesforceConsumerKey", | |
"value": "[parameters('SalesforceConsumerKey')]" | |
}, | |
{ | |
"name": "SalesforceConsumerSecret", | |
"value": "[parameters('SalesforceConsumerSecret')]" | |
}, | |
{ | |
"name": "logAnalyticsUri", | |
"value": "[variables('LogAnaltyicsUri')]" | |
}, | |
{ | |
"name": "timeInterval", | |
"value": "[parameters('TimeInterval')]" | |
}, | |
{ | |
"name": "Schedule", | |
"value": "[variables('cron')]" | |
}, | |
{ | |
"name": "WEBSITE_RUN_FROM_PACKAGE", | |
"value": "https://github.com/Azure/Azure-Sentinel/blob/v-ntripathi/SalesforceIntervalUpdate/Solutions/Salesforce%20Service%20Cloud/Data%20Connectors/SalesforceSentinelConn.zip?raw=true" | |
} | |
] | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Insights/components', variables('applicationInsightsName'))]", | |
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', split(format('{0}/default/{1}', parameters('functionStorageAccountName'), variables('functionContentShareName')), '/')[0], split(format('{0}/default/{1}', parameters('functionStorageAccountName'), variables('functionContentShareName')), '/')[1], split(format('{0}/default/{1}', parameters('functionStorageAccountName'), variables('functionContentShareName')), '/')[2])]", | |
"[resourceId('Microsoft.Web/serverfarms', parameters('functionAppPlanName'))]", | |
"[resourceId('Microsoft.Storage/storageAccounts', parameters('functionStorageAccountName'))]", | |
"[resourceId('Microsoft.Network/privateDnsZones/virtualNetworkLinks', variables('privateStorageBlobDnsZoneName'), format('{0}-link', variables('privateStorageBlobDnsZoneName')))]", | |
"[resourceId('Microsoft.Network/privateEndpoints/privateDnsZoneGroups', variables('privateEndpointStorageBlobName'), 'blobPrivateDnsZoneGroup')]", | |
"[resourceId('Microsoft.Network/privateEndpoints/privateDnsZoneGroups', variables('privateEndpointStorageFileName'), 'filePrivateDnsZoneGroup')]", | |
"[resourceId('Microsoft.Network/privateDnsZones/virtualNetworkLinks', variables('privateStorageQueueDnsZoneName'), format('{0}-link', variables('privateStorageQueueDnsZoneName')))]", | |
"[resourceId('Microsoft.Network/privateEndpoints/privateDnsZoneGroups', variables('privateEndpointStorageQueueName'), 'queuePrivateDnsZoneGroup')]", | |
"[resourceId('Microsoft.Network/privateDnsZones/virtualNetworkLinks', variables('privateStorageTableDnsZoneName'), format('{0}-link', variables('privateStorageTableDnsZoneName')))]", | |
"[resourceId('Microsoft.Network/privateEndpoints/privateDnsZoneGroups', variables('privateEndpointStorageTableName'), 'tablePrivateDnsZoneGroup')]" | |
] | |
}, | |
{ | |
"type": "Microsoft.Web/sites/networkConfig", | |
"apiVersion": "2021-01-01", | |
"name": "[format('{0}/{1}', parameters('functionAppName'), 'virtualNetwork')]", | |
"properties": { | |
"subnetResourceId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('functionSubnetName'))]", | |
"swiftSupported": true | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.Web/sites', parameters('functionAppName'))]", | |
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]" | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment