Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
Pulumi.yaml
README.md
cosmosclient.ts
index.ts
package.json
tsconfig.json

README.md

Deploy

Globally distributed serverless URL-shortener

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.io"}' \
        "$(pulumi stack output addEndpoint)"    
    Short URL saved
    
  7. Query a short URL:

    $ pulumi stack output endpoint
    http://urlshort-tm.trafficmanager.net/api/{key}
    $ curl http://urlshort-tm.trafficmanager.net/api/pulumi
    <!doctype html>
    <html lang="en-US" prefix="og: http://ogp.me/ns#">
        <head>
        <title>
            Pulumi
        </title>
    ...
    
You can’t perform that action at this time.