Skip to main content

Azure API Management

Example of using Azure API Management

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 classic-azure-ts-api-management
cd pulumi-examples/classic-azure-ts-api-management

An example Pulumi program that deploys an instance of Azure API Management with the following resources:

  • API which is linked to an Azure Function App backend
  • Operation and operation policy with URL rewrite and caching rules
  • A product, a user, and a subscription to enable access to the API

Running the App#

  1. Create a new stack:

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

    Terminal window
    az login
  3. Restore NPM dependencies:

    Terminal window
    npm install
  4. Configure Azure environment:

    Terminal window
    pulumi config set azure:location <location>
    pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>
  5. Run pulumi up to preview and deploy changes:

    Terminal window
    pulumi up
    Previewing update (dev):
    ...
    Updating (dev):
    ...
    Resources:
    + 12 created
    Duration: 34m54s
  6. Check the deployed function endpoint:

    Terminal window
    pulumi stack output endpoint
    https://greeting-service12345678.azure-api.net/hello/Pulumi
    curl --header "Ocp-Apim-Subscription-Key: $(pulumi stack output key)" $(pulumi stack output endpoint)
    {"time":"2019-06-17T15:16:08.227Z","greeting":"Hello Pulumi!"}
    ...
  7. Verify that API caches the response for 30 seconds - the same time should be returned for subsequent queries:

    Terminal window
    curl --header "Ocp-Apim-Subscription-Key: $(pulumi stack output key)" $(pulumi stack output endpoint)
    {"time":"2019-06-17T15:16:08.227Z","greeting":"Hello Pulumi!"}
    ...

Related

The infrastructure as code platform for any cloud.