Function

(~17 minutes)

App Service Plans

East US 2 App Service Plan

  • App service plans (ASPs) allow the function to run for an extended period of time - and most times can be more affordable to run than the Consumption plan.

  • Navigate to the Create App Service Plan resource in the Azure Portal

  • Select the appropriate Subscription and the rg-sharethrift resource group

  • App Service Plan details

    • Name: service-east2-<<random-number>>

      • ** when creating for west 2 use service-west2-<<random-number>

    • Operating System: Linux

    • Region: East US 2

      • **when creating for west 2 use West US 2

  • Pricing Tier

    • Sku and size: B1 (located under category of Dev / Test) ~$12.41/mo

West US 2 App Service Plan

Repeat the same process above, but instead make the following changes

  • App Service Plan Name:

    • service-west2-<<random-number>

  • Select the Region:

    • US West 2

US East 2 Function

  • Start by creating an app service plan - we're selecting the minimal to get us going:

  • Navigate to the Create Function App resource in the Azure Portal

  • Select the appropriate Subscription and the rg-sharethrift resource group

  • Instance Details

    • Function App Name: data-access-east2-<<random-number>>

      • ** when creating for west 2 use data-access-west2<<random-number>>

    • Publish: code

    • Runtime Stack: Node.js

    • Version: 16 LTS (Preview)

    • Region: East US 2

      • ** when creating for west 2 use West US 2

    • Choose Next : Hosting >

  • Hosting Details:

    • Storage Account: (select the sharethrift<random number> storage account created earlier)

      • ** when creating for west 2 select the sharethriftwest<random number> account

    • Operating System: linux

    • Plan type: App service plan

    • Linux Plan: service-east2 (B1)

    • Choose Next: Networking (preview) > Monitoring

  • Application Insights:

    • Enable Application Insights: Yes

    • Application Insights: sharethrift (East US 2)

      • ** when creating for west 2 select sharethriftwest (West US 2)

    • Choose Review + Create

    • Choose Create (wait for it to complete)

    • Choose Go to resource

  • Add App Settings for improved performance

    • In the function app just created navigate to Configuration

    • Choose + New Application Setting for each of the following

      • Ensure the Node App gets rebuilt on the Linux VM that runs the function when deployed

        • Name: SCM_DO_BUILD_DURING_DEPLOYMENT

        • Value: true

        • Name: ENABLE_ORYX_BUILD

        • Value: true

      • Do not add the following - these no longer seem to work..

        • Improve Cold Start performance (details)

          • Name: WEBSITE_RUN_FROM_PACKAGE

          • Value: 1

        • Improve Node performance (details)

          • Name: FUNCTIONS_WORKER_PROCESS_COUNT

          • Value: 10

    • Choose Save

    • Choose Continue (wait until completion)

  • Add CORS headers

    • In the function app just created navigate to CORS

    • Check the Enable Access-Control-Allow-Credentials

    • Add the URL of the website created in the CDN step

      • e.g. https://sharethrift<random number>.azureedge.net/

  • Add System Assigned Identity

    • In the function app just created navigate to Settings > Identity

    • Under System Assigned, Status : Select On

    • Choose Save - a dialog confirming your choice will appear, click Yes, wait for it complete.

    • Click the Azure Role Assignments button:

      • You will be taken to the Azure Role Assignments Blade

      • Click Add role assignment (preview)

      • In the Add Role Assignment blade

        • Scope: Key Vault

        • Subscription: (choose the appropriate subscription)

        • Resource: sharethrift

        • Role: Key Vault Secrets User (preview)

US West 2 Function

Repeat the same process above, but instead make the following changes

  • Name the function:

    • data-access-west2<<random-number>>

  • Select the Region:

    • US West 2

  • Select the storage account:

    • sharethriftwest<random number> storage account created earlier

  • Select the application insights:

    • sharethriftwest (West US 2)

Keyvault Settings

  • Need to add Get permissions on secret for the 2 identities you just created

Resources

Last updated