Todo app using Azure App Service with SQL Database integrated with Azure DevOps
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set classic-azure-ts-appservice-devopscd pulumi-examples/classic-azure-ts-appservice-devopsA Todo List application from Azure Samples GitHub: .NET Core MVC sample for Azure App Service, a web app built with ASP.NET Core, Entity Framework Core and a SQL database.
Provisions Azure SQL Database and Azure Application Insights to be used in combination with App Service. Defines an Azure DevOps pipeline to deploy in a CI/CD environment.
Prerequisites#
Deploying the example#
-
Build and publish the ASP.NET Core project:
Terminal window dotnet publish src -
Navigate to
infra:Terminal window cd infra -
Create a new stack:
Terminal window pulumi stack init dev -
Log in to the Azure CLI (you will be prompted to do this during deployment if you forget this step):
Terminal window az login -
Configure the target Azure environment:
Terminal window pulumi config set azure:location <location>pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID> -
Define the SQL Server username:
Terminal window pulumi config set sqlUsername <value> -
Define the SQL Server password (make it complex enough to satisfy Azure policy):
Terminal window pulumi config set --secret sqlPassword <value> -
Install dependencies:
Terminal window npm install -
Deploy the stack:
Terminal window pulumi upPreviewing changes:...Performing changes:...info: 10 changes performed:+ 10 resources createdUpdate duration: 1m14.59910109s -
Check the deployed website endpoint:
Terminal window pulumi stack output endpointcurl "$(pulumi stack output endpoint)"https://dev-as10d706a2.azurewebsites.net<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Index - My ToDoList App</title>...
Integrating with Azure DevOps#
azure-pipeline.yml in the root folder of this example shows a configuration for Azure DevOps using the Pulumi task.
The Pulumi task expects a Pulumi access token to be configured as a build variable. Copy your token from the Access Tokens page and put it into the pulumi.access.token build variable.
The alternative-pipeline folder contains custom scripts and a pipeline to run the Pulumi program in environments that do not have access to the marketplace.
Follow the Azure DevOps guide for more details.
Cleaning up#
Once you are done, you can destroy all of the resources, and the stack:
pulumi destroypulumi stack rm