Skip to content

TylerLeonhardt/azure-functions-powershell-worker-old

Repository files navigation

Azure Functions PowerShell Language Worker

This repository will host the PowerShell language worker implementation for Azure Functions. We'll also be using it to track work items related to PowerShell support. Please feel free to leave comments about any of the features and design patterns.

🚧 The project is currently work in progress. Please do not use in production as we expect developments over time. To receive important updates, including breaking changes announcements, watch the Azure App Service announcements repository. 🚧

Overview

PowerShell support for Functions is based on PowerShell Core 6.1, Functions on Linux, and the Azure Functions runtime V2.

What's available?

  • Triggers / Bindings : HTTP/Webhook

What's coming?

  • More triggers and bindings
  • Tooling integration
  • A bunch of other good things

Contributing

This project is not currently taking pull requests because it's still in the early development and is changing rapidly.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Building from source

Prereqs

Build

  • Clone this repository
  • cd azure-functions-powershell-worker
  • dotnet publish
  • Make note of the location of the publish directory: src/bin/Dubug/netcoreapp2.1/publish

Run & Debug

The PowerShell worker alone is not enough to establish the functions app, we also need the support from Azure Functions Host. You may either use a published host CLI or use the in-development host. But both of the methods require you to attach to the .NET process if you want a step-by-step debugging experience.

Published Host

First, follow the instructions to install the Azure Functions Core Tools. Then locate the azure-functions-core-tools\bin\workers\ folder. Here are a few hints on where it could be located:

On Windows if you installed via npm

~\AppData\Roaming\npm\node_modules\azure-functions-core-tools\bin\workers\

On macOS if you installed via brew

/usr/local/Cellar/azure-functions-core-tools/<version>/workers/

Copy the result of the publish directory into a powershell folder under workers so it looks something like:

/usr/local/Cellar/azure-functions-core-tools/<version>/workers/powershell/<contents of publish directory>

Then cd into a Function App with PowerShell as the worker runtime (NOTE: There's an example PowerShell Function App in the examples folder).

Lastly, run:

func start

Latest Host

A developer may also use the latest host code by cloning the git repository Azure Functions Host. Now you need to navigate to the root folder of the host project and build it through:

dotnet restore WebJobs.Script.sln
dotnet build WebJobs.Script.sln

After the build succeeded, set the environment variable "AzureWebJobsScriptRoot" to the root folder path (the folder which contains the host.json) of your test functions app.

Then copy the publish directory to "<Azure Functions Host Root>/src/WebJobs.Script.WebHost/bin/Debug/netcoreapp2.1/workers/powershell".

Then you can start the host but running:

dotnet ./src/WebJobs.Script.WebHost/bin/Debug/netcoreapp2.1/Microsoft.Azure.WebJobs.Script.WebHost.dll

Note: Remember to remove "AzureWebJobsScriptRoot" environment variable after you have finished debugging, because it will also influence the func CLI tool.

About

PowerShell language worker for Azure Functions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published