Code Monkey home page Code Monkey logo

azure-logic-apps-pipeline-orchestration's Introduction

page_type languages products description urlFragment
sample
json
azure-logic-apps
azure-devops
This sample provides an Azure Resource Manager template for an Azure Logic app that can be used to orchestrate the execution of many Azure DevOps Pipelines.
azure-devops-orchestration-with-logic-apps

Using Azure Logic Apps for Azure DevOps Pipeline Orchestration

This sample provides an Azure Resource Manager template for a Azure Logic app that can be used to orchestrate the execution of many Azure DevOps Pipelines. The Logic App is an HTTP triggered logic app that accepts a POST method. The payload has two arrays defined. The first array is the information for the pipelines that will need to be executed synchronously. The second is the information on the pipelines that, once the synchronous pipelines are completed, can be executed asynchronously.

Demo video of this Azure Logic App:

Click to view video that demonstrates this azure logic app sample

The Azure DevOps project that is being used for this demo can be located here: Azure DevOps Orchestration with Azure Logic Apps sample pipeline

Contents

File/folder Description
samples Sample payloads that are sent to the app for execution.
azuredeploy.json The Azure Resource Manager template that contains the sample application.
.gitignore Define what to ignore at commit time.
README.md This README file.
LICENSE The license for the sample.
SECURITY Microsoft OOS Security disclosure.
CODE_OF_CONDUCT Microsoft OOS code of conduct.

Prerequisites

  • Azure subscription
  • Azure DevOps subscription
  • Azure DevOps Pipelines defined

Setup

To setup this sample execute the follow steps in order.

  • Create a resource group within your Azure subscription
az group create -n {name of resource group to create}
az group deployment create -g {name of resource group created} --template-file azuredeploy.json
  • Authenticate the arm API Connector that was deployed with the template
    • Navigate to the "Edit API Connection" blade of the arm API Connection Resource
    • Click the "Authorize"
    • Login to the appropriate Azure Subscription

Screen shot of Azure Resource Manager Edit API Connection screen

  • Authenticate the azuredevops API connector that was deployed with the template
    • Navigate to the "Edit API Connection" blade of the azuredevops API Connection Resource
    • Click the "Authorize"
    • Login to the appropriate Azure DevOps subscription

Screen shot of Azure DevOps Edit API Connection screen

Running the sample

To run do the following

  • Acquire the URL from the deployed logic app.
    • Open the logic app's designer view blade

    • Click on the "When a HTTP request is received" action

    • Copy the url

      Screen shot of Logic App Designer View

    • Construct the payload for the post request using the Pipeline Orchestration Payload Documentation.

    • Use your url posting tool of choice (Postman, curl, etc...). To post the request to the Logic app

Key concepts

This sample allows for orchestration of many Azure DevOps pipelines using an Azure Logic App. This is very useful for scenarios where a series of discrete Azure DevOps pipelines are used to create/maintain/update small services within a larger ecosystem of services. In this environment you would want to have CI/CD pipelines created to allow for each discrete service to by deployed individually. However, when a new environment is required, be it for testing, development, scaling, disaster recovery, etc., creating that new environment requires the execution of those pipelines in specific sequences and differing parameters.

This sample allows for those scenarios by:

  • queueing builds of the pipelines
  • with provided parameters
  • in the sequence defined

It also allows for pipelines to be queued asychroniously, after the primary pipelines have completed.

Refer to the pipeline payload documentation to see how to provide that information.

You can review the detailed workflow of the Logic App after you deploy it to your Azure Subscription, but at a high level the Logic App uses the following work flow:

High Level workflow of logic app

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-logic-apps-pipeline-orchestration's People

Contributors

microsoft-github-operations[bot] avatar microsoftopensource avatar scgbear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.