Skip to main content

Azure Cosmos DB, an API Connection, and a Logic App

An example of creating a CosmosDB container through a Azure's Cosmos SDK and deploying a Logic App and an API Connection

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set azure-cs-cosmosdb-logicapp
cd pulumi-examples/azure-cs-cosmosdb-logicapp

With the native Azure provider we can directly use the Azure resource manager API to define API connections and linking it to a logic app. The resulting experience is much faster in comparison to performing the same operation through ARM templates.

Prerequisites#

  1. Install Pulumi
  2. Install .NET Core 3.1+

Running the App#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Set the required configuration variables for this program, and log into Azure:

    Terminal window
    pulumi config set azure-native:location westeurope
    az login
  3. Perform the deployment:

    Terminal window
    pulumi up
    Type Name Status
    + pulumi:pulumi:Stack azure-cosmosdb-logicapp-dev created
    + ├─ azure-native:resources:ResourceGroup logicappdemo-rg created
    + ├─ azure-native:storage:StorageAccount logicappdemosa created
    + ├─ azure-native:documentdb:DatabaseAccount logicappdemo-cdb created
    + ├─ azure-native:documentdb:SqlResourceSqlDatabase db created
    + ├─ azure-native:web:Connection cosmosdbConnection created
    + ├─ azure-native:documentdb:SqlResourceSqlContainer container created
    + └─ azure-native:logic:Workflow workflow created
    Resources:
    + 8 created
    Duration: 3m16s
  4. At this point, you have a Cosmos DB collection and a Logic App listening to HTTP requests. You can trigger the Logic App with a curl command:

    $ curl -X POST "$(pulumi stack output endpoint)" -d '"Hello World"' -H 'Content-Type: application/json'

    The POST body will be saved into a new document in the Cosmos DB collection.

  5. Once you are done, you can destroy all of the resources, and the stack:

    Terminal window
    pulumi destroy
    pulumi stack rm

Related

The infrastructure as code platform for any cloud.