【问题标题】:How can one deploy a PowerShell api to Azure Functions thru VSC?如何通过 VSC 将 PowerShell api 部署到 Azure Functions?
【发布时间】:2018-07-26 20:55:31
【问题描述】:

如何将 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 Function 的“部署”按钮直接部署以下代码。但我收到以下错误。

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

【问题讨论】:

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


    【解决方案1】:

    无法写入工作区设置,因为没有打开工作区。请先打开一个工作区,然后重试。

    在 VSCode 中,我们必须先打开一个文件夹或创建一个函数项目,否则无法创建保存 Workspace 设置的文件,并且在尝试修改运行时、语言和模板等 Workspace 设置时会出现错误过滤器。

    在VSCode中开发Azure Function的详细步骤(参考来自official tutorial):

    提示

    1. Languages like Powershell 是实验性的,所以不要在生产中使用它们。 Powershell/Python 对 2.x 运行时的支持也在进行中。

    2. Install functions core tools(cli) 在本地调试函数。

      1.x 适用于 OS Windows .NET Framework,2.x 适用于跨平台 .NET Core。

    安装 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 自动设置的。

    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按钮,按照提示操作。

    【讨论】:

    • @AyanMullick 是的,这个 Node.js 和 npm 要求用于安装 Azure 函数核心工具以在本地运行函数。如果只想在线部署和测试,不需要安装node相关资源。
    • @AyanMullick 您正在尝试在本地运行函数 cli,它需要在 Windows 上安装 nodejs 和 npm。而$是Mac等OS上的shell信号,如果你已经安装了功能核心工具,只需运行func即可。
    • @AyanMullick 已详细更新了我的答案,看看它是否对你有用。
    • 采取的步骤 1. 创建函数 2. 选择一个空白文件夹 3. 提示工程初始化。我说是。 4. 选择JavaScript 进行语言选择 5. Change project runtime~1(Approved for Production use) Screen 6. 它给出一个错误Unable to write Workspace settings because no workspace is opened. Please open a workspace first and try again Screen
    • @AyanMullick 知道了。你应该先在VSCode中打开一个文件夹或先创建一个函数项目,否则无法创建保存Workspace settings的文件,尝试修改运行时会出错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    相关资源
    最近更新 更多