Deploying the Functions runtime as a private site extension
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 our CI machine output for a particular build, e.g. https://ci.appveyor.com/project/appsvc/azure-webjobs-sdk-script-y8o14/build/1.0.10650/artifacts
- or you can build the private package yourself:
- 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
- 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)
- From root, run build.ps1
- Note, if you're a functions team member, you probably want to use the
win-x32.inprocbuild. 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". The functions.azure.com portal creates dynamic skus. You can create a standard sku via the Ibiza portal)
- Drag and drop the Functions.Private.zip into the root of your Kudu Console. i.e. this should create
- 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.