1. Packages
  2. Azure Classic
  3. How-to Guides
  4. Globally Distributed Serverless URL Shortener Using Azure Functions and Cosmos DB

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

Globally Distributed Serverless URL Shortener Using Azure Functions and Cosmos DB

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

View Code Deploy this example with Pulumi

Multi-region deployment of Azure Functions and Cosmos DB with Traffic Manager

Running the App

  1. Create a new stack:

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

    az login
    
    Copy
  3. Restore NPM dependencies:

    npm install
    
    Copy
  4. Specify the Azure subscription and regions to deploy the application:

    pulumi config set locations westus,westeurope
    pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>
    
    Copy
  5. Run pulumi up to preview and deploy changes:

    $ pulumi up
    Previewing changes:
    ...
    
    Performing changes:
    ...
    info: 23 changes performed:
        + 23 resources created
    Update duration: 21m33.3252322s
    
    Copy
  6. Add a short URL:

    $ pulumi stack output addEndpoint
    https://urlshort-add94ac80f8.azurewebsites.net/api/urlshort-add
    $ curl -H "Content-Type: application/json" \
        --request POST \
        -d '{"id":"pulumi","url":"https://pulumi.com"}' \
        "$(pulumi stack output addEndpoint)"
    Short URL saved
    
    Copy
  7. Query a short URL:

    $ pulumi stack output endpoint
    http://urlshort-tm.trafficmanager.net/api/
    $ curl -L $(pulumi stack output endpoint)pulumi
    <!doctype html>
    <html lang="en-US" prefix="og: http://ogp.me/ns#">
        <head>
        <title>
            Pulumi
        </title>
    ...
    
    Copy

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi