簡體   English   中英

無法使用 Visual Studio Code 調試 Azure JavaScript Function

[英]Can't Debug Azure JavaScript Function using Visual Studio Code

我第一次使用 VS 代碼並嘗試使用 JavaScript 語言創建 azure function。 我關注了這篇文章

環境:

  • 安裝了 NodeJS v16.x
  • Azure 已安裝功能擴展
  • Azure 已安裝 Functions Core Tools 4.x

問題:

我創建了一個示例 azure function。當使用 f5 運行應用程序時,它顯示以下錯誤

錯誤圖片 1

我從host.json中刪除了擴展包配置,然后重試。 這次,我收到以下錯誤

錯誤圖片2

誰能幫我這個

更新:

主機.json

    {
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[2.*, 3.0.0)"
  }
}

local.settings.json

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "node"
  }
}

索引.js

module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    const name = (req.query.name || (req.body && req.body.name));
    const responseMessage = name
        ? "Hello, " + name + ". This HTTP triggered function executed successfully."
        : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";

    context.res = {
        // status: 200, /* Defaults to 200 */
        body: responseMessage
    };
}

這是我按照問題中給出的相同文檔使用 Visual Studio Code 運行 JavaScript Stack 的 Azure 函數的解決方法

先決條件:

  1. 安裝VS Code並安裝Azure 帳戶Azure 功能Azure 存儲Azurite 、擴展菜單中的擴展以及從 VS Code登錄Azure 帳戶。
  2. 下載並安裝NodeJS版本 14(我猜 16 是預覽版),來源: https://nodejs.org/en/download/https://phoenixnap.com/kb/install-node.js-npm-on -視窗
  1. 單擊獨立安裝程序從此處安裝Azure 存儲模擬器(已棄用但仍用於本地開發和測試)。 - 安裝 Azure 存儲模擬器后,確保它正在運行。 如果它已關閉,則手動運行它。 要啟動 Azure 存儲模擬器:

    • Select開始按鈕或按Windows鍵。
    • 開始輸入Azure Storage Emulator
    • Select 顯示的應用程序列表中的模擬器。
    • 鍵入Start > Enter 並關閉 Window。
  2. 安裝用於舊版本和新版本堆棧開發的Azure Functions Core Tools v3 和 v4,並在命令提示符下使用func --versio n 命令檢查版本。

  3. 安裝Azure CLI ,從 安裝PowerShell 模塊

  4. 在轉到 IDE (VS Code/Visual Studio) 之前,請遵循此先決條件檢查


使用/不使用調試運行 Azure 函數的步驟:

  1. 在文件資源管理器中創建工作區文件夾並從該文件夾路徑打開 VS Code。
  2. 使用 Azure 功能擴展創建 Azure 功能項目 JavaScript 堆棧。 這是未修改的樣板代碼:

索引.js

module.exports = async  function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');

const  name = (req.query.name || (req.body && req.body.name));

const  responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";

context.res = {
// status: 200, /* Defaults to 200 */
body:  responseMessage
};
}

local.settings.json

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "node"
}
}

主機.json

{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[2.*, 3.0.0)"
}
}
  • 無需從host.json中刪除擴展包

要運行 Function、go 到運行菜單 > Select 選項Start DebuggingRun without Debugging ,我在沒有啟動 VS 代碼的情況下運行它,它在本地成功運行。

在此處輸入圖像描述

調試代碼:

在代碼的任意行和 select 中放置一個斷點從Run菜單Start Debugging選項

在此處輸入圖像描述

注意:對於類似的錯誤: A host error has occurred during startup operation , Value cannot be null ,幾個解決步驟是:

  • 在本地開發和測試目的中使用Azure 存儲模擬器
  • 確保您擁有最新版本的 Azure Functions Core Tools以及舊版本(您可以安裝多個版本的 AF Core Tools 並根據需要使用)。
  • local.settings.json中, AzureWebJobsStorage的值默認為空,但如果我們在本地使用該項目,最好使用 like "AzureWebJobsStorage": "UseDevelopmentStorage=true"

您可以從我的GitHub Repository下載上述項目。


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM