Skip to content

Commit b11ce23

Browse files
authored
Merge pull request #4 from fwickert/3-support-250-characters-instead-of-200
resolves #3
2 parents bf50197 + 4d6bd3e commit b11ce23

File tree

4 files changed

+145
-3
lines changed

4 files changed

+145
-3
lines changed

src/Application/src/RazorPagesTestSample/Data/Message.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,19 @@ public class Message
77
{
88
public int Id { get; set; }
99

10+
/// <summary>
11+
/// Gets or sets the text of the message.
12+
/// </summary>
13+
/// <value>
14+
/// The text content of the message, limited to 250 characters.
15+
/// </value>
16+
/// <remarks>
17+
/// This property is required and must be a text data type. If the text exceeds 250 characters,
18+
/// an error message will be displayed indicating the character limit.
19+
/// </remarks>
1020
[Required]
1121
[DataType(DataType.Text)]
12-
[StringLength(200, ErrorMessage = "There's a 200 character limit on messages. Please shorten your message.")]
22+
[StringLength(250, ErrorMessage = "There's a 250 character limit on messages. Please shorten your message.")]
1323
public string Text { get; set; }
1424
}
1525
#endregion
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "GitHubDevOpsCredential",
3+
"issuer": "https://token.actions.githubusercontent.com",
4+
"subject": "repo:fwickert/TechExcel-Accelerate-developer-productivity-with-GitHub-Copilot-and-Dev-Box",
5+
"description": "Deploy Azure resources from the TechExcel DevOps practices GitHub repo",
6+
"audiences": [
7+
"api://AzureADTokenExchange"
8+
]
9+
}

src/InfrastructureAsCode/deploy.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Azure Bicep
2+
3+
on:
4+
workflow_dispatch
5+
6+
env:
7+
targetEnv: dev
8+
9+
jobs:
10+
build-and-deploy:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
steps:
17+
# Checkout code
18+
- uses: actions/checkout@main
19+
20+
# Log into Azure
21+
- uses: azure/[email protected]
22+
with:
23+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
24+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
25+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
26+
enable-AzPSSession: true
27+
28+
# Deploy ARM template
29+
- name: Run ARM deploy
30+
uses: azure/arm-deploy@v1
31+
with:
32+
subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
33+
resourceGroupName: ${{ secrets.AZURE_RG }}
34+
template: ./src/InfrastructureAsCode/main.bicep
35+
parameters: environment=${{ env.targetEnv }}

src/InfrastructureAsCode/main.bicep

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,98 @@ var webAppName = '${uniqueString(resourceGroup().id)}-${environment}'
88
var appServicePlanName = '${uniqueString(resourceGroup().id)}-mpnp-asp'
99
var logAnalyticsName = '${uniqueString(resourceGroup().id)}-mpnp-la'
1010
var appInsightsName = '${uniqueString(resourceGroup().id)}-mpnp-ai'
11-
var sku = 'S1'
11+
var sku = 'P0V3'
1212
var registryName = '${uniqueString(resourceGroup().id)}mpnpreg'
1313
var registrySku = 'Standard'
1414
var imageName = 'techexcel/dotnetcoreapp'
1515
var startupCommand = ''
1616

17-
// TODO: complete this script
17+
18+
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2021-12-01-preview' = {
19+
name: logAnalyticsName
20+
location: location
21+
properties: {
22+
sku: {
23+
name: 'PerGB2018'
24+
}
25+
retentionInDays: 90
26+
workspaceCapping: {
27+
dailyQuotaGb: 1
28+
}
29+
}
30+
}
31+
32+
resource appInsights 'Microsoft.Insights/components@2020-02-02-preview' = {
33+
name: appInsightsName
34+
location: location
35+
kind: 'web'
36+
properties: {
37+
Application_Type: 'web'
38+
WorkspaceResourceId: logAnalyticsWorkspace.id
39+
}
40+
}
41+
42+
resource containerRegistry 'Microsoft.ContainerRegistry/registries@2020-11-01-preview' = {
43+
name: registryName
44+
location: location
45+
sku: {
46+
name: registrySku
47+
}
48+
properties: {
49+
adminUserEnabled: true
50+
}
51+
}
52+
53+
resource appServicePlan 'Microsoft.Web/serverFarms@2022-09-01' = {
54+
name: appServicePlanName
55+
location: location
56+
kind: 'linux'
57+
properties: {
58+
reserved: true
59+
}
60+
sku: {
61+
name: sku
62+
}
63+
}
64+
65+
resource appServiceApp 'Microsoft.Web/sites@2020-12-01' = {
66+
name: webAppName
67+
location: location
68+
properties: {
69+
serverFarmId: appServicePlan.id
70+
httpsOnly: true
71+
clientAffinityEnabled: false
72+
siteConfig: {
73+
linuxFxVersion: 'DOCKER|${containerRegistry.name}.azurecr.io/${uniqueString(resourceGroup().id)}/${imageName}'
74+
http20Enabled: true
75+
minTlsVersion: '1.2'
76+
appCommandLine: startupCommand
77+
appSettings: [
78+
{
79+
name: 'WEBSITES_ENABLE_APP_SERVICE_STORAGE'
80+
value: 'false'
81+
}
82+
{
83+
name: 'DOCKER_REGISTRY_SERVER_URL'
84+
value: 'https://${containerRegistry.name}.azurecr.io'
85+
}
86+
{
87+
name: 'DOCKER_REGISTRY_SERVER_USERNAME'
88+
value: containerRegistry.name
89+
}
90+
{
91+
name: 'DOCKER_REGISTRY_SERVER_PASSWORD'
92+
value: containerRegistry.listCredentials().passwords[0].value
93+
}
94+
{
95+
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
96+
value: appInsights.properties.InstrumentationKey
97+
}
98+
]
99+
}
100+
}
101+
}
102+
103+
output application_name string = appServiceApp.name
104+
output application_url string = appServiceApp.properties.hostNames[0]
105+
output container_registry_name string = containerRegistry.name

0 commit comments

Comments
 (0)