From fec80d72f07746a887b03552ea6e21babac2af4e Mon Sep 17 00:00:00 2001 From: MrMCake Date: Tue, 30 Aug 2022 22:06:08 +0200 Subject: [PATCH 01/10] [Modules] Updated Web/Sites to new dependency approach --- .github/workflows/ms.web.sites.yml | 3 +- .../sites/.test/fa.min.parameters.json | 20 -- .../sites/.test/fa.min/dependencies.bicep | 21 ++ .../sites/.test/fa.min/deploy.test.bicep | 50 ++++ .../sites/.test/fa.parameters.json | 146 ----------- .../sites/.test/fa/dependencies.bicep | 90 +++++++ .../sites/.test/fa/deploy.test.bicep | 164 +++++++++++++ .../sites/.test/wa.min.parameters.json | 15 -- .../sites/.test/wa.min/dependencies.bicep | 21 ++ .../sites/.test/wa.min/deploy.test.bicep | 47 ++++ .../sites/.test/wa.parameters.json | 70 ------ .../sites/.test/wa/dependencies.bicep | 61 +++++ .../sites/.test/wa/deploy.test.bicep | 96 ++++++++ modules/Microsoft.Web/sites/readme.md | 232 +++++++++--------- 14 files changed, 667 insertions(+), 369 deletions(-) delete mode 100644 modules/Microsoft.Web/sites/.test/fa.min.parameters.json create mode 100644 modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep create mode 100644 modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep delete mode 100644 modules/Microsoft.Web/sites/.test/fa.parameters.json create mode 100644 modules/Microsoft.Web/sites/.test/fa/dependencies.bicep create mode 100644 modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep delete mode 100644 modules/Microsoft.Web/sites/.test/wa.min.parameters.json create mode 100644 modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep create mode 100644 modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep delete mode 100644 modules/Microsoft.Web/sites/.test/wa.parameters.json create mode 100644 modules/Microsoft.Web/sites/.test/wa/dependencies.bicep create mode 100644 modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep diff --git a/.github/workflows/ms.web.sites.yml b/.github/workflows/ms.web.sites.yml index 172f6a7571..d5a3eb08a6 100644 --- a/.github/workflows/ms.web.sites.yml +++ b/.github/workflows/ms.web.sites.yml @@ -106,8 +106,7 @@ jobs: - name: 'Using test file [${{ matrix.moduleTestFilePaths }}]' uses: ./.github/actions/templates/validateModuleDeployment with: - templateFilePath: '${{ env.modulePath }}/deploy.bicep' - parameterFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' + templateFilePath: '${{ env.modulePath }}/${{ matrix.moduleTestFilePaths }}' location: '${{ env.location }}' resourceGroupName: '${{ env.resourceGroupName }}' subscriptionId: '${{ secrets.ARM_SUBSCRIPTION_ID }}' diff --git a/modules/Microsoft.Web/sites/.test/fa.min.parameters.json b/modules/Microsoft.Web/sites/.test/fa.min.parameters.json deleted file mode 100644 index 0d4b5e85fb..0000000000 --- a/modules/Microsoft.Web/sites/.test/fa.min.parameters.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fa-min-001" - }, - "kind": { - "value": "functionapp" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "alwaysOn": true - } - } - } -} diff --git a/modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep b/modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep new file mode 100644 index 0000000000..cd93e7ed3f --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep @@ -0,0 +1,21 @@ +@description('Optional. The location to deploy resources to.') +param location string = resourceGroup().location + +@description('Required. The name of the Server Farm to create.') +param serverFarmName string + +resource serverFarm 'Microsoft.Web/serverfarms@2022-03-01' = { + name: serverFarmName + location: location + sku: { + name: 'S1' + tier: 'Standard' + size: 'S1' + family: 'S' + capacity: 1 + } + properties: {} +} + +@description('The resource ID of the created Server Farm.') +output serverFarmResourceId string = serverFarm.id diff --git a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep new file mode 100644 index 0000000000..b9412d749a --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep @@ -0,0 +1,50 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'wsfamin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + serverFarmName: 'dep-<>-sf-${serviceShort}' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + kind: 'functionapp' + serverFarmResourceId: resourceGroupResources.outputs.serverFarmResourceId + siteConfig: { + alwaysOn: true + } + } +} diff --git a/modules/Microsoft.Web/sites/.test/fa.parameters.json b/modules/Microsoft.Web/sites/.test/fa.parameters.json deleted file mode 100644 index e67fc9f53e..0000000000 --- a/modules/Microsoft.Web/sites/.test/fa.parameters.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-fa-x-001" - }, - "lock": { - "value": "CanNotDelete" - }, - "kind": { - "value": "functionapp" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "alwaysOn": true, - "use32BitWorkerProcess": false - } - }, - "appInsightId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001" - }, - "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "setAzureWebJobsDashboard": { - "value": true - }, - "appSettingsKeyValuePairs": { - "value": { - "FUNCTIONS_EXTENSION_VERSION": "~4", - "FUNCTIONS_WORKER_RUNTIME": "dotnet", - "AzureFunctionsJobHost__logging__logLevel__default": "Trace", - "EASYAUTH_SECRET": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/Modules-Test-SP-Password" - } - }, - "authSettingV2Configuration": { - "value": { - "globalValidation": { - "requireAuthentication": true, - "unauthenticatedClientAction": "Return401" - }, - "httpSettings": { - "forwardProxy": { - "convention": "NoProxy" - }, - "requireHttps": true, - "routes": { - "apiPrefix": "/.auth" - } - }, - "identityProviders": { - "azureActiveDirectory": { - "enabled": true, - "login": { - "disableWWWAuthenticate": false - }, - "registration": { - "openIdIssuer": "https://sts.windows.net/<>/v2.0/", - "clientId": "d874dd2f-2032-4db1-a053-f0ec243685aa", - "clientSecretSettingName": "EASYAUTH_SECRET" - }, - "validation": { - "allowedAudiences": [ - "api://d874dd2f-2032-4db1-a053-f0ec243685aa" - ], - "defaultAuthorizationPolicy": { - "allowedPrincipals": {} - }, - "jwtClaimChecks": {} - } - } - }, - "login": { - "allowedExternalRedirectUrls": [ - "string" - ], - "cookieExpiration": { - "convention": "FixedTime", - "timeToExpiration": "08:00:00" - }, - "nonce": { - "nonceExpirationInterval": "00:05:00", - "validateNonce": true - }, - "preserveUrlFragmentsForLogins": false, - "routes": {}, - "tokenStore": { - "azureBlobStorage": {}, - "enabled": true, - "fileSystem": {}, - "tokenRefreshExtensionHours": 72 - } - }, - "platform": { - "enabled": true, - "runtimeVersion": "~1" - } - } - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sites" - } - ] - } - } -} diff --git a/modules/Microsoft.Web/sites/.test/fa/dependencies.bicep b/modules/Microsoft.Web/sites/.test/fa/dependencies.bicep new file mode 100644 index 0000000000..f6c66d1cc3 --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/fa/dependencies.bicep @@ -0,0 +1,90 @@ +@description('Optional. The location to deploy resources to.') +param location string = resourceGroup().location + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +@description('Required. The name of the Server Farm to create.') +param serverFarmName string + +@description('Required. The name of the Storage Account to create.') +param storageAccountName string + +@description('Required. The name of the Application Insights instance to create.') +param applicationInsightsName string + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { + name: storageAccountName + location: location + sku: { + name: 'Standard_LRS' + } + kind: 'StorageV2' + properties: {} +} + +resource serverFarm 'Microsoft.Web/serverfarms@2022-03-01' = { + name: serverFarmName + location: location + sku: { + name: 'S1' + tier: 'Standard' + size: 'S1' + family: 'S' + capacity: 1 + } + properties: {} +} + +resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = { + name: applicationInsightsName + location: location + kind: '' + properties: {} +} + +@description('The resource ID of the created Virtual Network Subnet.') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Managed Identity.') +output managedIdentityResourceId string = managedIdentity.id + +@description('The resource ID of the created Server Farm.') +output serverFarmResourceId string = serverFarm.id + +@description('The resource ID of the created Storage Account.') +output storageAccountResourceId string = storageAccount.id + +@description('The resource ID of the created Application Insights instance.') +output applicationInsightsResourceId string = applicationInsights.id diff --git a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep new file mode 100644 index 0000000000..074bd41d29 --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep @@ -0,0 +1,164 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'wsfa' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + serverFarmName: 'dep-<>-sf-${serviceShort}' + storageAccountName: 'dep<>st${serviceShort}' + applicationInsightsName: 'dep-<>-appi-${serviceShort}' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' + params: { + storageAccountName: 'dep<>diasa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + kind: 'functionapp' + serverFarmResourceId: resourceGroupResources.outputs.serverFarmResourceId + appInsightId: resourceGroupResources.outputs.applicationInsightsResourceId + appSettingsKeyValuePairs: { + AzureFunctionsJobHost__logging__logLevel__default: 'Trace' + EASYAUTH_SECRET: 'https://adp-<>-az-kv-x-001.${environment().suffixes.keyvaultDns}/secrets/Modules-Test-SP-Password' + FUNCTIONS_EXTENSION_VERSION: '~4' + FUNCTIONS_WORKER_RUNTIME: 'dotnet' + } + authSettingV2Configuration: { + globalValidation: { + requireAuthentication: true + unauthenticatedClientAction: 'Return401' + } + httpSettings: { + forwardProxy: { + convention: 'NoProxy' + } + requireHttps: true + routes: { + apiPrefix: '/.auth' + } + } + identityProviders: { + azureActiveDirectory: { + enabled: true + login: { + disableWWWAuthenticate: false + } + registration: { + clientId: 'd874dd2f-2032-4db1-a053-f0ec243685aa' + clientSecretSettingName: 'EASYAUTH_SECRET' + openIdIssuer: 'https://sts.windows.net/${tenant().tenantId}/v2.0/' + } + validation: { + allowedAudiences: [ + 'api://d874dd2f-2032-4db1-a053-f0ec243685aa' + ] + defaultAuthorizationPolicy: { + allowedPrincipals: {} + } + jwtClaimChecks: {} + } + } + } + login: { + allowedExternalRedirectUrls: [ + 'string' + ] + cookieExpiration: { + convention: 'FixedTime' + timeToExpiration: '08:00:00' + } + nonce: { + nonceExpirationInterval: '00:05:00' + validateNonce: true + } + preserveUrlFragmentsForLogins: false + routes: {} + tokenStore: { + azureBlobStorage: {} + enabled: true + fileSystem: {} + tokenRefreshExtensionHours: 72 + } + } + platform: { + enabled: true + runtimeVersion: '~1' + } + } + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + lock: 'CanNotDelete' + privateEndpoints: [ + { + service: 'sites' + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + setAzureWebJobsDashboard: true + siteConfig: { + alwaysOn: true + use32BitWorkerProcess: false + } + storageAccountId: resourceGroupResources.outputs.storageAccountResourceId + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + } + } +} diff --git a/modules/Microsoft.Web/sites/.test/wa.min.parameters.json b/modules/Microsoft.Web/sites/.test/wa.min.parameters.json deleted file mode 100644 index 588beef102..0000000000 --- a/modules/Microsoft.Web/sites/.test/wa.min.parameters.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wa-min-001" - }, - "kind": { - "value": "app" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - } - } -} diff --git a/modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep b/modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep new file mode 100644 index 0000000000..cd93e7ed3f --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep @@ -0,0 +1,21 @@ +@description('Optional. The location to deploy resources to.') +param location string = resourceGroup().location + +@description('Required. The name of the Server Farm to create.') +param serverFarmName string + +resource serverFarm 'Microsoft.Web/serverfarms@2022-03-01' = { + name: serverFarmName + location: location + sku: { + name: 'S1' + tier: 'Standard' + size: 'S1' + family: 'S' + capacity: 1 + } + properties: {} +} + +@description('The resource ID of the created Server Farm.') +output serverFarmResourceId string = serverFarm.id diff --git a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep new file mode 100644 index 0000000000..493dd8fb6b --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep @@ -0,0 +1,47 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'wswamin' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + serverFarmName: 'dep-<>-sf-${serviceShort}' + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + kind: 'app' + serverFarmResourceId: resourceGroupResources.outputs.serverFarmResourceId + } +} diff --git a/modules/Microsoft.Web/sites/.test/wa.parameters.json b/modules/Microsoft.Web/sites/.test/wa.parameters.json deleted file mode 100644 index 75ea5f8f00..0000000000 --- a/modules/Microsoft.Web/sites/.test/wa.parameters.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "name": { - "value": "<>-az-wa-x-001" - }, - "kind": { - "value": "app" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - "siteConfig": { - "value": { - "metadata": [ - { - "name": "CURRENT_STACK", - "value": "dotnetcore" - } - ], - "alwaysOn": true - } - }, - "httpsOnly": { - "value": true - }, - "systemAssignedIdentity": { - "value": true - }, - "userAssignedIdentities": { - "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} - } - }, - "roleAssignments": { - "value": [ - { - "roleDefinitionIdOrName": "Reader", - "principalIds": [ - "<>" - ] - } - ] - }, - "diagnosticLogsRetentionInDays": { - "value": 7 - }, - "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" - }, - "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" - }, - "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" - }, - "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" - }, - "privateEndpoints": { - "value": [ - { - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints", - "service": "sites" - } - ] - } - } -} diff --git a/modules/Microsoft.Web/sites/.test/wa/dependencies.bicep b/modules/Microsoft.Web/sites/.test/wa/dependencies.bicep new file mode 100644 index 0000000000..4f6316ecb8 --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/wa/dependencies.bicep @@ -0,0 +1,61 @@ +@description('Optional. The location to deploy resources to.') +param location string = resourceGroup().location + +@description('Required. The name of the Virtual Network to create.') +param virtualNetworkName string + +@description('Required. The name of the Managed Identity to create.') +param managedIdentityName string + +@description('Required. The name of the Server Farm to create.') +param serverFarmName string + +resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-01-01' = { + name: virtualNetworkName + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '10.0.0.0/24' + ] + } + subnets: [ + { + name: 'defaultSubnet' + properties: { + addressPrefix: '10.0.0.0/24' + } + } + ] + } +} + +resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = { + name: managedIdentityName + location: location +} + +resource serverFarm 'Microsoft.Web/serverfarms@2022-03-01' = { + name: serverFarmName + location: location + sku: { + name: 'S1' + tier: 'Standard' + size: 'S1' + family: 'S' + capacity: 1 + } + properties: {} +} + +@description('The resource ID of the created Virtual Network Subnet.') +output subnetResourceId string = virtualNetwork.properties.subnets[0].id + +@description('The principal ID of the created Managed Identity.') +output managedIdentityPrincipalId string = managedIdentity.properties.principalId + +@description('The resource ID of the created Managed Identity.') +output managedIdentityResourceId string = managedIdentity.id + +@description('The resource ID of the created Server Farm.') +output serverFarmResourceId string = serverFarm.id diff --git a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep new file mode 100644 index 0000000000..be12a00a56 --- /dev/null +++ b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep @@ -0,0 +1,96 @@ +targetScope = 'subscription' + +// ========== // +// Parameters // +// ========== // +@description('Optional. The name of the resource group to deploy for a testing purposes') +@maxLength(90) +param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' + +@description('Optional. The location to deploy resources to') +param location string = deployment().location + +@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +param serviceShort string = 'wswa' + +// =========== // +// Deployments // +// =========== // + +// General resources +// ================= +resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { + name: resourceGroupName + location: location +} + +module resourceGroupResources 'dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-paramNested' + params: { + virtualNetworkName: 'dep-<>-vnet-${serviceShort}' + managedIdentityName: 'dep-<>-msi-${serviceShort}' + serverFarmName: 'dep-<>-sf-${serviceShort}' + } +} + +// Diagnostics +// =========== +module diagnosticDependencies '../../../../.shared/dependencyConstructs/diagnostic.dependencies.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name, location)}-diagnosticDependencies' + params: { + storageAccountName: 'dep<>diasa${serviceShort}01' + logAnalyticsWorkspaceName: 'dep-<>-law-${serviceShort}' + eventHubNamespaceEventHubName: 'dep-<>-evh-${serviceShort}' + eventHubNamespaceName: 'dep-<>-evhns-${serviceShort}' + location: location + } +} + +// ============== // +// Test Execution // +// ============== // + +module testDeployment '../../deploy.bicep' = { + scope: resourceGroup + name: '${uniqueString(deployment().name)}-test-${serviceShort}' + params: { + name: '<>${serviceShort}001' + kind: 'app' + serverFarmResourceId: resourceGroupResources.outputs.serverFarmResourceId + diagnosticLogsRetentionInDays: 7 + diagnosticStorageAccountId: diagnosticDependencies.outputs.storageAccountResourceId + diagnosticWorkspaceId: diagnosticDependencies.outputs.logAnalyticsWorkspaceResourceId + diagnosticEventHubAuthorizationRuleId: diagnosticDependencies.outputs.eventHubAuthorizationRuleId + diagnosticEventHubName: diagnosticDependencies.outputs.eventHubNamespaceEventHubName + httpsOnly: true + privateEndpoints: [ + { + service: 'sites' + subnetResourceId: resourceGroupResources.outputs.subnetResourceId + } + ] + roleAssignments: [ + { + principalIds: [ + resourceGroupResources.outputs.managedIdentityPrincipalId + ] + roleDefinitionIdOrName: 'Reader' + } + ] + siteConfig: { + alwaysOn: true + metadata: [ + { + name: 'CURRENT_STACK' + value: 'dotnetcore' + } + ] + } + systemAssignedIdentity: true + userAssignedIdentities: { + '${resourceGroupResources.outputs.managedIdentityResourceId}': {} + } + } +} diff --git a/modules/Microsoft.Web/sites/readme.md b/modules/Microsoft.Web/sites/readme.md index 0778ce52bd..1687dc266f 100644 --- a/modules/Microsoft.Web/sites/readme.md +++ b/modules/Microsoft.Web/sites/readme.md @@ -410,82 +410,25 @@ The following module usage examples are retrieved from the content of the files >**Note**: The name of each example is based on the name of the file from which it is taken. >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Fa Min

+

Example 1: Fa

via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wsfa' params: { // Required parameters kind: 'functionapp' - name: '<>-az-fa-min-001' - serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' + name: '<>wsfa001' + serverFarmResourceId: '' // Non-required parameters - siteConfig: { - alwaysOn: true - } - } -} -``` - -
-

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "kind": { - "value": "functionapp" - }, - "name": { - "value": "<>-az-fa-min-001" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - // Non-required parameters - "siteConfig": { - "value": { - "alwaysOn": true - } - } - } -} -``` - -
-

- -

Example 2: Fa

- -
- -via Bicep module - -```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-sites' - params: { - // Required parameters - kind: 'functionapp' - name: '<>-az-fa-x-001' - serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' - // Non-required parameters - appInsightId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001' + appInsightId: '' appSettingsKeyValuePairs: { AzureFunctionsJobHost__logging__logLevel__default: 'Trace' - EASYAUTH_SECRET: 'https://adp-<>-az-kv-x-001.vault.azure.net/secrets/Modules-Test-SP-Password' + EASYAUTH_SECRET: 'https://adp-<>-az-kv-x-001.${environment().suffixes.keyvaultDns}/secrets/Modules-Test-SP-Password' FUNCTIONS_EXTENSION_VERSION: '~4' FUNCTIONS_WORKER_RUNTIME: 'dotnet' } @@ -512,7 +455,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { registration: { clientId: 'd874dd2f-2032-4db1-a053-f0ec243685aa' clientSecretSettingName: 'EASYAUTH_SECRET' - openIdIssuer: 'https://sts.windows.net/<>/v2.0/' + openIdIssuer: 'https://sts.windows.net/${tenant().tenantId}/v2.0/' } validation: { allowedAudiences: [ @@ -551,22 +494,22 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { runtimeVersion: '~1' } } - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' lock: 'CanNotDelete' privateEndpoints: [ { service: 'sites' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + subnetResourceId: '' } ] roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -576,10 +519,10 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { alwaysOn: true use32BitWorkerProcess: false } - storageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' + storageAccountId: '' systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '': {} } } } @@ -602,19 +545,19 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": "functionapp" }, "name": { - "value": "<>-az-fa-x-001" + "value": "<>wsfa001" }, "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" + "value": "" }, // Non-required parameters "appInsightId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001" + "value": "" }, "appSettingsKeyValuePairs": { "value": { "AzureFunctionsJobHost__logging__logLevel__default": "Trace", - "EASYAUTH_SECRET": "https://adp-<>-az-kv-x-001.vault.azure.net/secrets/Modules-Test-SP-Password", + "EASYAUTH_SECRET": "https://adp-<>-az-kv-x-001.${environment().suffixes.keyvaultDns}/secrets/Modules-Test-SP-Password", "FUNCTIONS_EXTENSION_VERSION": "~4", "FUNCTIONS_WORKER_RUNTIME": "dotnet" } @@ -643,7 +586,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "registration": { "clientId": "d874dd2f-2032-4db1-a053-f0ec243685aa", "clientSecretSettingName": "EASYAUTH_SECRET", - "openIdIssuer": "https://sts.windows.net/<>/v2.0/" + "openIdIssuer": "https://sts.windows.net/${tenant().tenantId}/v2.0/" }, "validation": { "allowedAudiences": [ @@ -684,19 +627,19 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { } }, "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "lock": { "value": "CanNotDelete" @@ -705,7 +648,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": [ { "service": "sites", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" + "subnetResourceId": "" } ] }, @@ -713,7 +656,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -729,14 +672,14 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { } }, "storageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "systemAssignedIdentity": { "value": true }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "": {} } } } @@ -746,20 +689,24 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

-

Example 3: Wa Min

+

Example 2: Fa.Min

via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wsfamin' params: { // Required parameters - kind: 'app' - name: '<>-az-wa-min-001' - serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' + kind: 'functionapp' + name: '<>wsfamin001' + serverFarmResourceId: '' + // Non-required parameters + siteConfig: { + alwaysOn: true + } } } ``` @@ -778,13 +725,19 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "parameters": { // Required parameters "kind": { - "value": "app" + "value": "functionapp" }, "name": { - "value": "<>-az-wa-min-001" + "value": "<>wsfamin001" }, "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" + "value": "" + }, + // Non-required parameters + "siteConfig": { + "value": { + "alwaysOn": true + } } } } @@ -793,37 +746,37 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

-

Example 4: Wa

+

Example 3: Wa

via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wswa' params: { // Required parameters kind: 'app' - name: '<>-az-wa-x-001' - serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' + name: '<>wswa001' + serverFarmResourceId: '' // Non-required parameters - diagnosticEventHubAuthorizationRuleId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey' - diagnosticEventHubName: 'adp-<>-az-evh-x-001' + diagnosticEventHubAuthorizationRuleId: '' + diagnosticEventHubName: '' diagnosticLogsRetentionInDays: 7 - diagnosticStorageAccountId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001' - diagnosticWorkspaceId: '/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001' + diagnosticStorageAccountId: '' + diagnosticWorkspaceId: '' httpsOnly: true privateEndpoints: [ { service: 'sites' - subnetResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints' + subnetResourceId: '' } ] roleAssignments: [ { principalIds: [ - '<>' + '' ] roleDefinitionIdOrName: 'Reader' } @@ -839,7 +792,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { } systemAssignedIdentity: true userAssignedIdentities: { - '/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001': {} + '': {} } } } @@ -862,26 +815,26 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": "app" }, "name": { - "value": "<>-az-wa-x-001" + "value": "<>wswa001" }, "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" + "value": "" }, // Non-required parameters "diagnosticEventHubAuthorizationRuleId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.EventHub/namespaces/adp-<>-az-evhns-x-001/AuthorizationRules/RootManageSharedAccessKey" + "value": "" }, "diagnosticEventHubName": { - "value": "adp-<>-az-evh-x-001" + "value": "" }, "diagnosticLogsRetentionInDays": { "value": 7 }, "diagnosticStorageAccountId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Storage/storageAccounts/adp<>azsax001" + "value": "" }, "diagnosticWorkspaceId": { - "value": "/subscriptions/<>/resourcegroups/validation-rg/providers/microsoft.operationalinsights/workspaces/adp-<>-az-law-x-001" + "value": "" }, "httpsOnly": { "value": true @@ -890,7 +843,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": [ { "service": "sites", - "subnetResourceId": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Network/virtualNetworks/adp-<>-az-vnet-x-001/subnets/<>-az-subnet-x-005-privateEndpoints" + "subnetResourceId": "" } ] }, @@ -898,7 +851,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": [ { "principalIds": [ - "<>" + "" ], "roleDefinitionIdOrName": "Reader" } @@ -920,7 +873,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { }, "userAssignedIdentities": { "value": { - "/subscriptions/<>/resourcegroups/validation-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/adp-<>-az-msi-x-001": {} + "": {} } } } @@ -929,3 +882,50 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

+ +

Example 4: Wa.Min

+ +
+ +via Bicep module + +```bicep +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wswamin' + params: { + // Required parameters + kind: 'app' + name: '<>wswamin001' + serverFarmResourceId: '' + } +} +``` + +
+

+ +

+ +via JSON Parameter file + +```json +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + // Required parameters + "kind": { + "value": "app" + }, + "name": { + "value": "<>wswamin001" + }, + "serverFarmResourceId": { + "value": "" + } + } +} +``` + +
+

From ed27dfbfa4cb8e8892d2f37df29e87e6adf14116 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Thu, 1 Sep 2022 11:37:49 +0200 Subject: [PATCH 02/10] Update to latest --- modules/Microsoft.Web/sites/readme.md | 71 +++------------------------ 1 file changed, 7 insertions(+), 64 deletions(-) diff --git a/modules/Microsoft.Web/sites/readme.md b/modules/Microsoft.Web/sites/readme.md index 546db90bc0..1687dc266f 100644 --- a/modules/Microsoft.Web/sites/readme.md +++ b/modules/Microsoft.Web/sites/readme.md @@ -417,72 +417,15 @@ The following module usage examples are retrieved from the content of the files

via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-Sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wsfa' params: { // Required parameters kind: 'functionapp' name: '<>wsfa001' serverFarmResourceId: '' // Non-required parameters - siteConfig: { - alwaysOn: true - } - } -} -``` - - -

- -

- -via JSON Parameter file - -```json -{ - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - "contentVersion": "1.0.0.0", - "parameters": { - // Required parameters - "kind": { - "value": "functionapp" - }, - "name": { - "value": "<>-az-fa-min-001" - }, - "serverFarmResourceId": { - "value": "/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001" - }, - // Non-required parameters - "siteConfig": { - "value": { - "alwaysOn": true - } - } - } -} -``` - -
-

- -

Example 2: Fa

- -
- -via Bicep module - -```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-Sites' - params: { - // Required parameters - kind: 'functionapp' - name: '<>-az-fa-x-001' - serverFarmResourceId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Web/serverFarms/adp-<>-az-asp-x-001' - // Non-required parameters - appInsightId: '/subscriptions/<>/resourceGroups/validation-rg/providers/Microsoft.Insights/components/adp-<>-az-appi-x-001' + appInsightId: '' appSettingsKeyValuePairs: { AzureFunctionsJobHost__logging__logLevel__default: 'Trace' EASYAUTH_SECRET: 'https://adp-<>-az-kv-x-001.${environment().suffixes.keyvaultDns}/secrets/Modules-Test-SP-Password' @@ -753,8 +696,8 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-Sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wsfamin' params: { // Required parameters kind: 'functionapp' @@ -810,8 +753,8 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { via Bicep module ```bicep -module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-Sites' +module Sites './Microsoft.Web/Sites/deploy.bicep' = { + name: '${uniqueString(deployment().name)}-test-wswa' params: { // Required parameters kind: 'app' From 2e9345b85b4cff1e3375fa0b4a67757a8ee2246d Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 12:52:30 +0200 Subject: [PATCH 03/10] Update to latest --- modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep | 2 +- modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep | 2 +- modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep | 2 +- modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep index b9412d749a..8f1775c5fd 100644 --- a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'wsfamin' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep index 074bd41d29..2255d9019e 100644 --- a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'wsfa' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep index 493dd8fb6b..adb8dfe62e 100644 --- a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'wswamin' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep index be12a00a56..8a0be5b9df 100644 --- a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep @@ -10,7 +10,7 @@ param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' @description('Optional. The location to deploy resources to') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment .Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') param serviceShort string = 'wswa' // =========== // From 2567e8d0ac0e5c13a864fb8e9dc132afc12dbe12 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 13:05:45 +0200 Subject: [PATCH 04/10] Update to latest --- modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep | 6 +++--- modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep | 6 +++--- modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep | 6 +++--- modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep index 8f1775c5fd..c900e246b5 100644 --- a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'wsfamin' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep index 2255d9019e..9805114342 100644 --- a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'wsfa' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep index adb8dfe62e..5e87bcd147 100644 --- a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'wswamin' // =========== // diff --git a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep index 8a0be5b9df..0a5c7b1fb7 100644 --- a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep @@ -3,14 +3,14 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes') +@description('Optional. The name of the resource group to deploy for a testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' -@description('Optional. The location to deploy resources to') +@description('Optional. The location to deploy resources to.') param location string = deployment().location -@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints') +@description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'wswa' // =========== // From db6875986d79c17e9b8c6f9bd892ee2599bf2028 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 9 Sep 2022 14:17:14 +0200 Subject: [PATCH 05/10] Update to latest --- modules/Microsoft.Web/sites/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/Microsoft.Web/sites/readme.md b/modules/Microsoft.Web/sites/readme.md index fd3e31fa50..01b6629cfb 100644 --- a/modules/Microsoft.Web/sites/readme.md +++ b/modules/Microsoft.Web/sites/readme.md @@ -418,7 +418,7 @@ The following module usage examples are retrieved from the content of the files via Bicep module ```bicep -module Sites './Microsoft.Web/Sites/deploy.bicep' = { +module sites './Microsoft.Web/sites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-test-wsfa' params: { // Required parameters @@ -697,7 +697,7 @@ module Sites './Microsoft.Web/Sites/deploy.bicep' = { via Bicep module ```bicep -module Sites './Microsoft.Web/Sites/deploy.bicep' = { +module sites './Microsoft.Web/sites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-test-wsfamin' params: { // Required parameters @@ -754,7 +754,7 @@ module Sites './Microsoft.Web/Sites/deploy.bicep' = { via Bicep module ```bicep -module Sites './Microsoft.Web/Sites/deploy.bicep' = { +module sites './Microsoft.Web/sites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-test-wswa' params: { // Required parameters @@ -891,7 +891,7 @@ module Sites './Microsoft.Web/Sites/deploy.bicep' = { via Bicep module ```bicep -module Sites './Microsoft.Web/Sites/deploy.bicep' = { +module sites './Microsoft.Web/sites/deploy.bicep' = { name: '${uniqueString(deployment().name)}-test-wswamin' params: { // Required parameters From 984e6de99f3ce6e0ce11f77836ab6904d13e49a5 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 08:38:00 +0200 Subject: [PATCH 06/10] Update modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep --- modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep index c900e246b5..1caea757f3 100644 --- a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' From b8f9c0791ee76b2e70f40f4f265685bb969af59d Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 08:38:20 +0200 Subject: [PATCH 07/10] Update modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep --- modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep index 9805114342..b10bb3614b 100644 --- a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' From 1b26a0c0cf8d1a790972bfdb7bc81fd86fac7929 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 08:38:36 +0200 Subject: [PATCH 08/10] Update modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep --- modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep index 5e87bcd147..b463473993 100644 --- a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' From 688ad69557846685e2bb6fe77ae8586b2b8c33b0 Mon Sep 17 00:00:00 2001 From: Alexander Sehr Date: Mon, 19 Sep 2022 08:38:50 +0200 Subject: [PATCH 09/10] Update modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep --- modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep index 0a5c7b1fb7..99ca983469 100644 --- a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep @@ -3,7 +3,7 @@ targetScope = 'subscription' // ========== // // Parameters // // ========== // -@description('Optional. The name of the resource group to deploy for a testing purposes.') +@description('Optional. The name of the resource group to deploy for testing purposes.') @maxLength(90) param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' From a1b69d5b0cf304e01ff458606c1447e5a044e336 Mon Sep 17 00:00:00 2001 From: MrMCake Date: Fri, 14 Oct 2022 10:01:14 +0200 Subject: [PATCH 10/10] Addressed comments --- .../{fa => FunctionAppCommon}/dependencies.bicep | 0 .../{fa => FunctionAppCommon}/deploy.test.bicep | 2 +- .../{fa.min => functionAppMin}/dependencies.bicep | 0 .../{fa.min => functionAppMin}/deploy.test.bicep | 0 .../.test/{wa => webAppCommon}/dependencies.bicep | 0 .../.test/{wa => webAppCommon}/deploy.test.bicep | 0 .../.test/{wa.min => webAppMin}/dependencies.bicep | 0 .../.test/{wa.min => webAppMin}/deploy.test.bicep | 0 modules/Microsoft.Web/sites/readme.md | 14 +++++++------- 9 files changed, 8 insertions(+), 8 deletions(-) rename modules/Microsoft.Web/sites/.test/{fa => FunctionAppCommon}/dependencies.bicep (100%) rename modules/Microsoft.Web/sites/.test/{fa => FunctionAppCommon}/deploy.test.bicep (99%) rename modules/Microsoft.Web/sites/.test/{fa.min => functionAppMin}/dependencies.bicep (100%) rename modules/Microsoft.Web/sites/.test/{fa.min => functionAppMin}/deploy.test.bicep (100%) rename modules/Microsoft.Web/sites/.test/{wa => webAppCommon}/dependencies.bicep (100%) rename modules/Microsoft.Web/sites/.test/{wa => webAppCommon}/deploy.test.bicep (100%) rename modules/Microsoft.Web/sites/.test/{wa.min => webAppMin}/dependencies.bicep (100%) rename modules/Microsoft.Web/sites/.test/{wa.min => webAppMin}/deploy.test.bicep (100%) diff --git a/modules/Microsoft.Web/sites/.test/fa/dependencies.bicep b/modules/Microsoft.Web/sites/.test/FunctionAppCommon/dependencies.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/fa/dependencies.bicep rename to modules/Microsoft.Web/sites/.test/FunctionAppCommon/dependencies.bicep diff --git a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/FunctionAppCommon/deploy.test.bicep similarity index 99% rename from modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep rename to modules/Microsoft.Web/sites/.test/FunctionAppCommon/deploy.test.bicep index 771c31e480..3e16f08f32 100644 --- a/modules/Microsoft.Web/sites/.test/fa/deploy.test.bicep +++ b/modules/Microsoft.Web/sites/.test/FunctionAppCommon/deploy.test.bicep @@ -11,7 +11,7 @@ param resourceGroupName string = 'ms.web.sites-${serviceShort}-rg' param location string = deployment().location @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') -param serviceShort string = 'wsfa' +param serviceShort string = 'wsfacom' // =========== // // Deployments // diff --git a/modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep b/modules/Microsoft.Web/sites/.test/functionAppMin/dependencies.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/fa.min/dependencies.bicep rename to modules/Microsoft.Web/sites/.test/functionAppMin/dependencies.bicep diff --git a/modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/functionAppMin/deploy.test.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/fa.min/deploy.test.bicep rename to modules/Microsoft.Web/sites/.test/functionAppMin/deploy.test.bicep diff --git a/modules/Microsoft.Web/sites/.test/wa/dependencies.bicep b/modules/Microsoft.Web/sites/.test/webAppCommon/dependencies.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/wa/dependencies.bicep rename to modules/Microsoft.Web/sites/.test/webAppCommon/dependencies.bicep diff --git a/modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/webAppCommon/deploy.test.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/wa/deploy.test.bicep rename to modules/Microsoft.Web/sites/.test/webAppCommon/deploy.test.bicep diff --git a/modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep b/modules/Microsoft.Web/sites/.test/webAppMin/dependencies.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/wa.min/dependencies.bicep rename to modules/Microsoft.Web/sites/.test/webAppMin/dependencies.bicep diff --git a/modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep b/modules/Microsoft.Web/sites/.test/webAppMin/deploy.test.bicep similarity index 100% rename from modules/Microsoft.Web/sites/.test/wa.min/deploy.test.bicep rename to modules/Microsoft.Web/sites/.test/webAppMin/deploy.test.bicep diff --git a/modules/Microsoft.Web/sites/readme.md b/modules/Microsoft.Web/sites/readme.md index 48f9987aff..0699c042ed 100644 --- a/modules/Microsoft.Web/sites/readme.md +++ b/modules/Microsoft.Web/sites/readme.md @@ -413,7 +413,7 @@ The following module usage examples are retrieved from the content of the files >**Note**: Each example lists all the required parameters first, followed by the rest - each in alphabetical order. -

Example 1: Fa

+

Example 1: Functionappcommon

@@ -421,11 +421,11 @@ The following module usage examples are retrieved from the content of the files ```bicep module sites './Microsoft.Web/sites/deploy.bicep' = { - name: '${uniqueString(deployment().name)}-test-wsfa' + name: '${uniqueString(deployment().name)}-test-wsfacom' params: { // Required parameters kind: 'functionapp' - name: '<>wsfa001' + name: '<>wsfacom001' serverFarmResourceId: '' // Non-required parameters appInsightId: '' @@ -553,7 +553,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = { "value": "functionapp" }, "name": { - "value": "<>wsfa001" + "value": "<>wsfacom001" }, "serverFarmResourceId": { "value": "" @@ -702,7 +702,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

-

Example 2: Fa.Min

+

Example 2: Functionappmin

@@ -759,7 +759,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

-

Example 3: Wa

+

Example 3: Webappcommon

@@ -906,7 +906,7 @@ module sites './Microsoft.Web/sites/deploy.bicep' = {

-

Example 4: Wa.Min

+

Example 4: Webappmin