Use Pulumi's new import command to generate code from existing cloud resources. Learn More

Todo App Using Azure App Service with SQL Database and Integrated with Azure DevOps

View Code Deploy

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

  1. Build and publish the ASP.NET Core project:

    $ dotnet publish src
    
  2. Navigate to infra:

    $ cd infra
    
  3. Create a new stack:

    $ pulumi stack init dev
    
  4. Login to Azure CLI (you will be prompted to do this during deployment if you forget this step):

    $ az login
    
  5. Restore NPM dependencies:

    $ npm install
    
  6. Define SQL Server username:

    pulumi config set sqlUsername <value>
    
  7. Define SQL Server password (make it complex enough to satisfy Azure policy):

    pulumi config set --secret sqlPassword <value>
    
  8. 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
    
  9. 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.