Skip to content

Commit d08fa5a

Browse files
authored
Merge pull request #85 from delegateas/features/controllable-app-service-naming-in-bicep
Altered to allow for template like language instead
2 parents ab87980 + 9f86519 commit d08fa5a

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

Infrastructure/main.bicep

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ param websitePassword string
44
@secure()
55
param sessionSecret string
66

7-
@description('Custom name for the App Service. If not provided, defaults to wa-{solutionId}')
8-
param appServiceName string = ''
7+
@description('Resource naming template with {resourcetype} placeholder. Example: "d365ce-dev-erp-{resourcetype}" creates "d365ce-dev-erp-wa" for web app and "d365ce-dev-erp-asp" for app service plan. If not provided, defaults to "{resourcetype}-{solutionId}".')
8+
param resourceNameTemplate string = ''
99

1010
param adoOrganizationUrl string = ''
1111
param adoProjectName string = ''
@@ -31,11 +31,12 @@ param entraIdAllowedGroups string = ''
3131
param disablePasswordAuth bool = false
3232

3333
var location = resourceGroup().location
34-
var resolvedAppServiceName = empty(appServiceName) ? 'wa-${solutionId}' : appServiceName
34+
var resolvedAppServicePlanName = empty(resourceNameTemplate) ? 'asp-${solutionId}' : replace(resourceNameTemplate, '{resourcetype}', 'asp')
35+
var resolvedWebAppName = empty(resourceNameTemplate) ? 'wa-${solutionId}' : replace(resourceNameTemplate, '{resourcetype}', 'wa')
3536

3637
@description('Create an App Service Plan')
3738
resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
38-
name: 'asp-${solutionId}'
39+
name: resolvedAppServicePlanName
3940
location: location
4041
sku: {
4142
name: 'F1'
@@ -48,7 +49,7 @@ resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
4849

4950
@description('Create a Web App')
5051
resource webApp 'Microsoft.Web/sites@2021-02-01' = {
51-
name: resolvedAppServiceName
52+
name: resolvedWebAppName
5253
location: location
5354
identity: {
5455
type: 'SystemAssigned'
@@ -74,7 +75,7 @@ resource webApp 'Microsoft.Web/sites@2021-02-01' = {
7475
}
7576
{
7677
name: 'NEXTAUTH_URL'
77-
value: 'https://${resolvedAppServiceName}.azurewebsites.net'
78+
value: 'https://${resolvedWebAppName}.azurewebsites.net'
7879
}
7980
{
8081
name: 'WEBSITE_NODE_DEFAULT_VERSION'

Setup/azure-pipelines-deploy-jobs.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ parameters:
2323
- name: websiteName
2424
type: string
2525
default: ''
26-
- name: appServiceName
26+
- name: resourceNameTemplate
2727
type: string
2828
default: ''
2929
- name: adoOrganizationUrl
@@ -64,15 +64,25 @@ steps:
6464
inlineScript: |
6565
# Create resource group
6666
az group create --name ${{ parameters.azureResourceGroupName }} --location ${{ parameters.azureLocation }}
67-
67+
68+
# Debug: Show resource naming configuration
69+
$resourceNameTemplate = "${{ parameters.resourceNameTemplate }}"
70+
if ($resourceNameTemplate) {
71+
Write-Host "Using resource name template: $resourceNameTemplate"
72+
Write-Host " App Service Plan: $($resourceNameTemplate -replace '\{resourcetype\}', 'asp')"
73+
Write-Host " Web App: $($resourceNameTemplate -replace '\{resourcetype\}', 'wa')"
74+
} else {
75+
Write-Host "Using default naming: asp-${{ parameters.websiteName }}, wa-${{ parameters.websiteName }}"
76+
}
77+
6878
# Deploy bicep template
6979
$jsonResult = az deployment group create `
7080
--resource-group ${{ parameters.azureResourceGroupName }} `
7181
--template-file ${{ parameters.bicepTemplateFile }} `
7282
--parameters websitePassword="${{ parameters.websitePassword }}" `
7383
--parameters sessionSecret="${{ parameters.websiteSessionSecret }}" `
7484
--parameters solutionId="${{ parameters.websiteName }}" `
75-
--parameters appServiceName="${{ parameters.appServiceName }}" `
85+
--parameters resourceNameTemplate="${{ parameters.resourceNameTemplate }}" `
7686
--parameters adoOrganizationUrl="${{ parameters.adoOrganizationUrl }}" `
7787
--parameters adoProjectName="${{ parameters.adoProjectName }}" `
7888
--parameters adoRepositoryName="${{ parameters.adoRepositoryName }}" `

Setup/azure-pipelines-external.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
# - EntraIdAllowedGroups (comma-separated list of Entra ID group object IDs)
3131
#
3232
# Optional variables (for custom naming):
33-
# - AppServiceName (custom App Service name, defaults to wa-{WebsiteName} if not provided)
33+
# - AzureServiceNameTemplate (naming template with {resourcetype} placeholder, e.g., "d365ce-dev-erp-{resourcetype}")
3434

3535
trigger: none
3636
pr: none
@@ -100,7 +100,7 @@ stages:
100100
websitePassword: $(WebsitePassword)
101101
websiteSessionSecret: $(WebsiteSessionSecret)
102102
websiteName: $(WebsiteName)
103-
appServiceName: ${{ coalesce(variables.AppServiceName, '') }}
103+
resourceNameTemplate: '$(AzureServiceNameTemplate)'
104104
adoOrganizationUrl: $(System.CollectionUri)
105105
adoProjectName: $(System.TeamProject)
106106
adoRepositoryName: ${{ coalesce(variables.AdoRepositoryName, '') }}

0 commit comments

Comments
 (0)