如何将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
答案 0 :(得分:1)
由于未打开工作区,因此无法写入工作区设置。请先打开工作区,然后重试。
在VSCode中,我们必须先打开一个文件夹或创建一个功能项目,否则无法创建用于保存工作区设置的文件,并且在尝试修改工作区设置(如运行时,语言和模板)时会出现错误过滤器。
在VSCode中开发Azure函数的详细步骤(来自official tutorial的引用):
提示
Languages like Powershell是实验性的,因此请勿在生产中使用它们。对{2.x运行时的Powershell / Python支持也正在进行中。
Install functions core tools(cli)以在本地调试功能。
对于Windows Windows .NET Framework是1.x,对于跨平台.NET Core是2.x。
安装Azure功能扩展
在浏览器中输入vscode:extension/ms-azuretools.vscode-azurefunctions
,它将打开VScode并安装扩展程序。
创建功能项目
在文件资源管理器中创建一个空文件夹;说MyFunctionApp
登录到Azure帐户。
在Azure Function Extension中,单击Create New Project
并指向创建的文件夹MyFunctionApp
。
选择语言JavaScript
创建功能
单击Create Function
和浏览器MyFunctionApp
文件夹。然后,您可能会看到如下所示的下拉菜单。根据安装的cli自动设置项目运行时。
单击Change template filter
并将其更改为All
,以便我们可以看到所有可用的模板。
单击Change project language
以选择实验语言,例如Powershell
。
按照其余提示创建Http触发器。
在本地调试或运行功能
对于C#,JavaScript和Java,请随时F5.
要在本地运行实验语言的功能,请在VSCode(Ctrl +`)中打开终端并运行func host start
,不提供调试支持,因此请不要使用F5
。
要测试httptrigger,请在后缀函数url上加上?name=World!
,以从您的URL获取Hello World响应。
部署
点击Deploy to Function App
按钮并按照提示进行操作。