Deploy an ASP.NET Core and Azure SQL Database app to Azure App Service with Bicep,CLI and VS Code


Deploy software infrastructure with Bicep ( more details can be found from https://www.fuju.org/?p=38184

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// based on https://www.fuju.org/?p=38184
RESOURCE_GROUP_NAME=23ExampleRG=23ExampleRG
az group create --name $RESOURCE_GROUP_NAME=23ExampleRG --location "eastasia"
az deployment group create --resource-group $RESOURCE_GROUP_NAME=23ExampleRG --template-file 01-main-web-app-sqldb.bicep --parameters sqlAdministratorLogin='azuresqladmin' sqlAdministratorLoginPassword='MYSECRTEPASSWORD' location='eastasia'
// based on https://www.fuju.org/?p=38184 RESOURCE_GROUP_NAME=23ExampleRG=23ExampleRG az group create --name $RESOURCE_GROUP_NAME=23ExampleRG --location "eastasia" az deployment group create --resource-group $RESOURCE_GROUP_NAME=23ExampleRG --template-file 01-main-web-app-sqldb.bicep --parameters sqlAdministratorLogin='azuresqladmin' sqlAdministratorLoginPassword='MYSECRTEPASSWORD' location='eastasia'
// based on https://www.fuju.org/?p=38184
RESOURCE_GROUP_NAME=23ExampleRG=23ExampleRG
az group create --name $RESOURCE_GROUP_NAME=23ExampleRG --location "eastasia"
az deployment group create --resource-group $RESOURCE_GROUP_NAME=23ExampleRG --template-file 01-main-web-app-sqldb.bicep  --parameters sqlAdministratorLogin='azuresqladmin' sqlAdministratorLoginPassword='MYSECRTEPASSWORD' location='eastasia'

Deploy sample ASP.NET Core Application to App Service with VS code

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#https://www.fuju.org/?p=38044
# https://docs.microsoft.com/en-us/azure/app-service/tutorial-dotnetcore-sqldb-app
git clone https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.git
cd msdocs-app-service-sqldb-dotnetcore
dotnet build .
dotnet publish -c Release
#Right-click on the generated publish folder in the Visual Studio Code explorer and #select Deploy to Web App.
#https://www.fuju.org/?p=38044 # https://docs.microsoft.com/en-us/azure/app-service/tutorial-dotnetcore-sqldb-app git clone https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.git cd msdocs-app-service-sqldb-dotnetcore dotnet build . dotnet publish -c Release #Right-click on the generated publish folder in the Visual Studio Code explorer and #select Deploy to Web App.
#https://www.fuju.org/?p=38044 
# https://docs.microsoft.com/en-us/azure/app-service/tutorial-dotnetcore-sqldb-app

git clone https://github.com/Azure-Samples/msdocs-app-service-sqldb-dotnetcore.git
cd msdocs-app-service-sqldb-dotnetcore
dotnet build .
dotnet publish -c Release
#Right-click on the generated publish folder in the Visual Studio Code explorer and #select Deploy to Web App.

Update database connection string and create database table with entity framework core

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
APP_SERVICE_NAME=websiteacoss37fw5new
RESOURCE_GROUP_NAME=23ExampleRG
SQL_SERVER_NAME=sqlserverRANDOM
az sql db show-connection-string \
--client ado.net \
--name sampledb \
--server $SQL_SERVER_NAME.database.windows.net
az webapp config connection-string set \
-g $RESOURCE_GROUP_NAME \
-n $APP_SERVICE_NAME \
-t SQLServer \
--settings MyDbConnection="Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;Database=sampledb;User ID=azuresqladmin;Password='MYSECRETPASSWORD';Encrypt=true;Connection Timeout=30;"
# az sql server firewall-rule create --resource-group $RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME.database.windows.net.database.windows.net --name LocalAccess --start-ip-address <your-ip> --end-ip-address <your-ip>
# Change database connection string in "appsettings.json"
#"ConnectionStrings": {
# "MyDbConnection": "Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;
# Initial Catalog=sampledb;
# Persist Security Info=False;
# User ID=azuresqladmin;Password=MYSECRETPASSWORD;
# Encrypt=True;
# TrustServerCertificate=False;"
# }
# create database table in target database
dotnet tool install -g dotnet-ef
dotnet ef migrations add InitialCreat --project DotNetCoreSqlDb
dotnet ef database update --project DotNetCoreSqlDb
APP_SERVICE_NAME=websiteacoss37fw5new RESOURCE_GROUP_NAME=23ExampleRG SQL_SERVER_NAME=sqlserverRANDOM az sql db show-connection-string \ --client ado.net \ --name sampledb \ --server $SQL_SERVER_NAME.database.windows.net az webapp config connection-string set \ -g $RESOURCE_GROUP_NAME \ -n $APP_SERVICE_NAME \ -t SQLServer \ --settings MyDbConnection="Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;Database=sampledb;User ID=azuresqladmin;Password='MYSECRETPASSWORD';Encrypt=true;Connection Timeout=30;" # az sql server firewall-rule create --resource-group $RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME.database.windows.net.database.windows.net --name LocalAccess --start-ip-address <your-ip> --end-ip-address <your-ip> # Change database connection string in "appsettings.json" #"ConnectionStrings": { # "MyDbConnection": "Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433; # Initial Catalog=sampledb; # Persist Security Info=False; # User ID=azuresqladmin;Password=MYSECRETPASSWORD; # Encrypt=True; # TrustServerCertificate=False;" # } # create database table in target database dotnet tool install -g dotnet-ef dotnet ef migrations add InitialCreat --project DotNetCoreSqlDb dotnet ef database update --project DotNetCoreSqlDb
APP_SERVICE_NAME=websiteacoss37fw5new
RESOURCE_GROUP_NAME=23ExampleRG
SQL_SERVER_NAME=sqlserverRANDOM

az sql db show-connection-string \
    --client ado.net \
    --name sampledb \
    --server $SQL_SERVER_NAME.database.windows.net
	
az webapp config connection-string set \
    -g $RESOURCE_GROUP_NAME \
    -n $APP_SERVICE_NAME \
    -t SQLServer \
    --settings MyDbConnection="Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;Database=sampledb;User ID=azuresqladmin;Password='MYSECRETPASSWORD';Encrypt=true;Connection Timeout=30;"

# az sql server firewall-rule create --resource-group $RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME.database.windows.net.database.windows.net --name LocalAccess --start-ip-address <your-ip> --end-ip-address <your-ip>

# Change database connection string in "appsettings.json" 
#"ConnectionStrings": {
#    "MyDbConnection": "Server=tcp:$SQL_SERVER_NAME.database.windows.net,1433;
#        Initial Catalog=sampledb;
#        Persist Security Info=False;
#        User ID=azuresqladmin;Password=MYSECRETPASSWORD;
#        Encrypt=True;
#        TrustServerCertificate=False;"
# }
  
# create database table in target database
dotnet tool install -g dotnet-ef
dotnet ef migrations add InitialCreat --project DotNetCoreSqlDb
dotnet ef database update --project DotNetCoreSqlDb

Access web app logs and delete resources group

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
az webapp log config \
--web-server-logging 'filesystem' \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
az webapp log tail \
--name $APP_SERVICE_NAME \
--resource-group $RESOURCE_GROUP_NAME
az group delete --name $RESOURCE_GROUP_NAME
az webapp log config \ --web-server-logging 'filesystem' \ --name $APP_SERVICE_NAME \ --resource-group $RESOURCE_GROUP_NAME az webapp log tail \ --name $APP_SERVICE_NAME \ --resource-group $RESOURCE_GROUP_NAME az group delete --name $RESOURCE_GROUP_NAME
az webapp log config \
    --web-server-logging 'filesystem' \
    --name $APP_SERVICE_NAME \
    --resource-group $RESOURCE_GROUP_NAME
	
	
az webapp log tail \
    --name $APP_SERVICE_NAME \
    --resource-group $RESOURCE_GROUP_NAME

az group delete --name $RESOURCE_GROUP_NAME