Todo App Using Azure App Service with SQL Database and 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 CI/CD environment.
Running the App manually with Pulumi CLI#
-
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 -
Login to Azure CLI (you will be prompted to do this during deployment if you forget this step):
Terminal window az login -
Restore NPM dependencies:
Terminal window npm install -
Configure target Azure environment:
Terminal window pulumi config set azure:location <location>pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID> -
Define SQL Server username:
Terminal window pulumi config set sqlUsername <value> -
Define SQL Server password (make it complex enough to satisfy Azure policy):
Terminal window pulumi config set --secret sqlPassword <value> -
Run
pulumi upto preview and deploy changes: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 endpointhttps://dev-as10d706a2.azurewebsites.netcurl "$(pulumi stack output endpoint)"<!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 Pulumi task.
Pulumi task expects a Pulumi access token to be configured as a build variable. Copy your token from Access Tokens page and put it into pulumi.access.token build variable.
alternative-pipeline folder contains custom scripts and a pipeline to run Pulumi program in environments that have to access to the marketplace.
Follow Azure DevOps guide for more details.
Related
AWS Immersion Day: Building an IDP with Pulumi
