We recommend using Azure Native.
Todo App Using Azure App Service with SQL Database and Integrated with Azure DevOps
A 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:
dotnet publish src
Navigate to
infra
:cd infra
Create a new stack:
pulumi stack init dev
Login to Azure CLI (you will be prompted to do this during deployment if you forget this step):
az login
Restore NPM dependencies:
npm install
Configure target Azure environment:
pulumi config set azure:location <location> pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>
Define SQL Server username:
pulumi config set sqlUsername <value>
Define SQL Server password (make it complex enough to satisfy Azure policy):
pulumi config set --secret sqlPassword <value>
Run
pulumi up
to preview and deploy changes:$ pulumi up Previewing changes: ... Performing changes: ... info: 10 changes performed: + 10 resources created Update duration: 1m14.59910109s
Check the deployed website endpoint:
$ pulumi stack output endpoint https://dev-as10d706a2.azurewebsites.net $ curl "$(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.