Skip to content

Deploying the Functions runtime as a private site extension

Lilian Kasem edited this page Jun 9, 2022 · 24 revisions

⚠️ If you're on the Azure Functions team, please to refer to these docs

If you already have a Function App, you can use the following steps to deploy your own Functions runtime as a private site extension. Note: these steps only work on Functions Apps on a regular App Service Plan and not on Function Apps on a Consumption Plan.

  • First you need a Functions.Private.zip site extension package in the proper format
    • you can get one from the release assets of the specific version on github, e.g. https://github.com/Azure/azure-functions-host/releases/tag/v3.0.14916 and Functions.Private.3.0.14916.win-x32.inproc.zip is the specific asset in this case.
    • or you can build the private package yourself:
      • V1:
        • In VS, right click the WebJobs.Script.WebHost project and choose Publish
        • Select the existing FolderProfile profile and click Publish. This will create the bits under .\src\WebJobs.Script.WebHost\bin\Release\SiteExtensions
        • Zip up the SiteExtensions folder to produce a Functions.Private.zip file (Right-click > Send to Zip on the SiteExtensions folder - you can double check it looks like the zip from AppVeyor if you're unsure)
      • V2:
        • From root, run build.ps1
        • Use ./buildoutput/Functions.Private.2.0.0-prerelease.no-runtime.zip
        • Note: if you're a functions team member, you probably want to use the win-x32.inproc build. See the internal instructions for private site extensions for more details on using that.
      • V3:
        • From root, run build/build-extensions.ps1
        • Use ./buildoutput/Functions.Private.2.0.0-prerelease.no-runtime.zip
        • Note: if you're a functions team member, you probably want to use the win-x32.inproc build. See the internal instructions for private site extensions for more details on using that.
  • Go to the Kudu Console for the Function App that you want to use your bits on. Make sure you use a Function App on a regular App Service Plan (i.e. not Consumption), or it will not work. (You can determine this by looking at the WEBSITE_SKU environment variable in kudu. It should be "standard", not "dynamic".)
  • Drag and drop the Functions.Private.zip into the root of your Kudu Console. i.e. this should create d:\home\SiteExtensions\Functions
    • Access the file root from Debug Console -> (CMD or PowerShell) and drag the zip file into the right-hand side of the file list (there will be a hover indicating you're in the right place)
  • In the Functions Portal, restart the Function App so that it picks up the new version
  • To verify that you are running the runtime version you expect, browse to the host status endpoint at https://<functionappname>.azurewebsites.net/admin/host/status?code=<masterkey> and check the version returned. You can get the master key from the Azure Functions Portal, under the "Manage" tab of any function.

You are now using your private Functions runtime.

Learn

Azure Functions Basics

Advanced Concepts

Dotnet Functions

Java Functions

Node.js Functions

Python Functions

Host API's

Bindings

V2 Runtime

Contribute

Functions host

Language workers

Get Help

Other

Clone this wiki locally