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 Classic v5.80.0 published on Monday, Jun 10, 2024 by Pulumi

Globally Distributed Serverless URL Shortener Using Azure Functions and Cosmos DB

azure logo

We recommend using Azure Native.

Azure Classic v5.80.0 published on Monday, Jun 10, 2024 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
      
    2. Login to Azure CLI (you will be prompted to do this during deployment if you forget this step):

      $ az login
      
    3. Restore NPM dependencies:

      $ npm install
      
    4. Specify the Azure regions to deploy the application:

      $ pulumi config set locations westus,westeurope
      
    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
      
    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
      
    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>
      ...
      
    azure logo

    We recommend using Azure Native.

    Azure Classic v5.80.0 published on Monday, Jun 10, 2024 by Pulumi