如何通过VSC将PowerShell api部署到Azure Functions?

时间:2018-07-26 20:55:31

标签: powershell azure visual-studio-code azure-functions

如何将Powershell api部署到Azure Functions。 official documentation仅谈论部署JavaScript函数。

在通过Azure Functions扩展创建“项目”时,在选择语言时没有选择“ Powershell”的选项。

这是从Azure门户部署时的默认Powershell api。

# POST method: $req
$requestBody = Get-Content $req -Raw | ConvertFrom-Json
$name = $requestBody.name
# GET method: each querystring parameter is its own variable
if ($req_query_name) 
  {$name = $req_query_name}
Out-File -Encoding Ascii -FilePath $res -inputObject "Hello $name"

我尝试使用VSC Azure函数的“部署”按钮直接部署以下代码。但是我得到以下错误。

Unable to write Workspace settings because no workspace is opened. Please open a workspace first and try again

1 个答案:

答案 0 :(得分:1)

  

由于未打开工作区,因此无法写入工作区设置。请先打开工作区,然后重试。

在VSCode中,我们必须先打开一个文件夹或创建一个功能项目,否则无法创建用于保存工作区设置的文件,并且在尝试修改工作区设置(如运行时,语言和模板)时会出现错误过滤器。

在VSCode中开发Azure函数的详细步骤(来自official tutorial的引用):

提示

  1. Languages like Powershell是实验性的,因此请勿在生产中使用它们。对{2.x运行时的Powershell / Python支持也正在进行中。

  2. Install functions core tools(cli)以在本地调试功能。

    对于Windows Windows .NET Framework是1.x,对于跨平台.NET Core是2.x。

安装Azure功能扩展

在浏览器中输入vscode:extension/ms-azuretools.vscode-azurefunctions,它将打开VScode并安装扩展程序。

创建功能项目

  1. 在文件资源管理器中创建一个空文件夹;说MyFunctionApp

  2. 登录到Azure帐户。

  3. 在Azure Function Extension中,单击Create New Project并指向创建的文件夹MyFunctionApp

  4. 选择语言JavaScript

创建功能

  1. 单击Create Function和浏览器MyFunctionApp文件夹。然后,您可能会看到如下所示的下拉菜单。根据安装的cli自动设置项目运行时。

    enter image description here

  2. 单击Change template filter并将其更改为All,以便我们可以看到所有可用的模板。

  3. 单击Change project language以选择实验语言,例如Powershell

  4. 按照其余提示创建Http触发器。

在本地调试或运行功能

对于C#,JavaScript和Java,请随时F5.

要在本地运行实验语言的功能,请在VSCode(Ctrl +`)中打开终端并运行func host start,不提供调试支持,因此请不要使用F5

要测试httptrigger,请在后缀函数url上加上?name=World!,以从您的URL获取Hello World响应。

部署

点击Deploy to Function App按钮并按照提示进行操作。