使用 Visual Studio Code 來開發 Azure Functions

適用於 Visual Studio CodeAzure Functions 擴充功能可讓您在本機開發函式,並將其部署至 Azure。 如果此體驗是您第一次使用 Azure Functions,您可以在 Azure Functions 簡介中深入瞭解

Azure Functions 擴充功能提供下列優點:

  • 在本機開發計算機上編輯、建置及執行函式。
  • 將您的 Azure Functions 專案直接發佈至 Azure。
  • 使用各種語言撰寫函式,同時利用 Visual Studio Code 的優點。

您正在檢視本文的 C# 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

您正在檢視本文的 Java 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

您正在檢視本文的 JavaScript 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

您正在檢視本文的 PowerShell 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

您正在檢視本文的 Python 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

您正在檢視本文的 TypeScript 版本。 請務必在文章開頭選取您慣用的 Functions 程式設計語言。

如果您不熟悉 Functions,建議您先完成 Visual Studio Code 快速入門文章

重要

請勿混合單一函式應用程式的本機開發和入口網站開發。 當您從本機專案發佈至函式應用程式時,部署程式會覆寫您在入口網站中開發的任何函式。

必要條件

您也需要這些必要條件,才能 在本機執行和偵錯函式。 它們不需要只建立或發佈專案至 Azure Functions。

  • Azure Functions Core Tools,可啟用整合的本機偵錯體驗。 安裝 Azure Functions 擴充功能時,最簡單的安裝或更新 Core Tools 方式是從命令選擇區執行 Azure Functions: Install or Update Azure Functions Core Tools 命令。

建立 Azure Functions 專案

Functions 擴充功能可讓您在建立第一個函式的同時,建立必要的函式應用程式專案。 使用這些步驟在新的專案中建立 HTTP 觸發的函式。 HTTP 觸發程式是要示範的最簡單函式觸發程式範本。

  1. 在 [活動] 列中,選取 Azure 圖示。 在 [ 工作區][本機] 區域中,開啟 + 清單,然後選取 [ 建立函式]。

    建立新專案視窗的螢幕快照。

  2. 出現提示時,選取 [ 建立新專案]。 選取專案工作區的目錄位置,然後選擇 [ 選取]。

    您可以建立新資料夾,或為專案工作區選擇空白資料夾,但不要選擇已屬於工作區一部分的項目資料夾。

  3. 出現提示時, 請選取項目的語言 。 如有必要,請選擇特定語言版本。

  4. 選取 HTTP 觸發程式函式範本,或者您可以選取 [暫時略過] 來建立沒有函式的專案。 您稍後一律 可以將函式新增至專案

    選取 HTTP 觸發程式的螢幕快照。

    提示

    您可以選取 [ 變更範本篩選] 選項,並將值設定為 [核心 ] 或 [全部] 來檢視其他範本。

  5. 針對函式名稱,輸入 HttpExample,選取 Enter,然後選取 [函式授權]。

    當您呼叫函式端點時,此授權層級會要求您提供 函式密鑰

    建立函式授權的螢幕快照。

  6. 從下拉式清單中,選取 [ 新增至工作區]。

     選取 [新增至工作場所] 的螢幕快照。

  7. 在 [ 您信任此文件夾的檔案作者嗎? ] 視窗中,選取 [ ]。

    確認檔案作者信任的螢幕快照。

Visual Studio Code 會以您選擇的語言和 HTTP 觸發函式的範本建立函式。

產生的項目檔

項目範本會以您選擇的語言建立專案,並安裝必要的相依性。 針對任何語言,新專案具有下列檔案:

  • host.json:讓您設定 Functions 主機。 當您在本機執行函式,以及在 Azure 中執行函式時,這些設定會套用。 如需詳細資訊,請參閱 host.json 參考

  • local.settings.json:維護您在本機執行函式時所使用的設定。 只有在您在本機執行函式時,才會使用這些設定。 如需詳細資訊,請參閱本機設定檔

    重要

    因為local.settings.json檔案可以包含秘密,因此請務必從專案原始檔控制中排除檔案。

根據您的語言,會建立下列其他檔案:

HttpExample.cs類別庫檔案,其內容會因專案在隔離的背景工作進程與 Functions 主機同進程執行而有所不同。

產生的檔案取決於函式所選Node.js程序設計模型:

  • 根資料夾中的package.json檔案。

  • src\functions 資料夾中具名.js檔案,其中包含函式定義和函式程序代碼。

包含下列項目的 NaExample 資料夾:

產生的檔案取決於函式所選擇的 Python 程式設計模型:

  • 列出 Functions 所需套件的專案層級requirements.txt檔案。

  • 包含函式定義和程式代碼的function_app.py檔案。

此時,您可以在 本機執行 HTTP 觸發程式函式。

將函式新增至您的專案

您可以根據其中一個預先定義的 Functions 觸發程式範本,將新的函式新增至現有的專案。 若要新增函式觸發程式,請選取 F1 以開啟命令選擇區,然後尋找並執行 Azure Functions:Create Function 命令。 依照提示選擇您的觸發程式類型,並定義觸發程式的必要屬性。 如果您的觸發程式需要存取密鑰或 連接字串 才能連線到服務,請先備妥該專案,再建立函式觸發程式。

此動作會將新的 C# 類別庫 (.cs) 檔案新增至您的專案。

此動作會將新的 Java (.java) 檔案新增至您的專案。

此動作的結果取決於Node.js模型版本。

  • 根資料夾中的package.json檔案。

  • src\functions 資料夾中具名.js檔案,其中包含函式定義和函式程序代碼。

此動作會在專案中建立新的資料夾。 資料夾包含新的 function.json 檔案和新的PowerShell程式碼檔案。

此動作的結果取決於 Python 模型版本。

Visual Studio Code 會將新的函式程式代碼新增至 function_app.py 檔案(預設行為)或您選取的另一個 Python 檔案。

服務 連線

您可以藉由新增輸入和輸出系結,將函式連線到其他 Azure 服務。 系結會將函式連線到其他服務,而不需要撰寫連接程序代碼。

例如,您定義將數據寫入記憶體佇列的輸出系結方式取決於您的程式模型:

  1. 如有必要, 請新增支持系結延伸模組之封裝的參考。

  2. 更新函式方法以新增定義係結參數的屬性,例如 QueueOutput 佇列輸出系結。 您可以使用 MultiResponse 物件傳回多個訊息或多個輸出資料流。

例如,若要新增輸出系結,以將數據寫入記憶體佇列,您可以更新函式方法,以新增使用 QueueOutput 註釋所定義的系結參數。 物件 OutputBinding<T> 代表函式完成時寫入輸出系結的訊息。

例如,您定義將數據寫入記憶體佇列的輸出系結方式,取決於您的Node.js模型版本:

使用 Node.js v4 模型時,您必須使用 storageQueue 物件上的 函式,手動在函式定義中output新增return:選項,該函式會定義要寫入輸出的return記憶體佇列。 函式完成時會寫入輸出。

Visual Studio Code 可讓您遵循一組方便的提示,將系結新增至function.json檔案。

若要新增系結,請開啟命令板 (F1) 並輸入 Azure Functions:新增系結...,選擇新系結的函式,然後遵循提示,視新增至函式的系結類型而有所不同。

以下是定義新記憶體輸出系結的範例提示:

提示 Description
選取繫結方向 out 此繫結為輸出繫結。
選取具有方向的系結 Azure Queue Storage 此繫結是 Azure 儲存體佇列繫結。
用以在程式碼中識別此繫結的名稱 msg 識別您的程式碼中參考之繫結參數的名稱。
要接收訊息的佇列 outqueue 作為繫結寫入目標的佇列名稱。 當 queueName 不存在,繫結會在第一次使用時加以建立。
從 [local.settings.json] 選取設定 MyStorageConnection 包含記憶體帳戶 連接字串 的應用程式設定名稱。 這個AzureWebJobsStorage設定包含您使用函式應用程式建立之記憶體帳戶的 連接字串。

您也可以直接在函式資料夾中的function.json檔案上按下滑鼠右鍵(Ctrl+按兩下macOS),選取 [新增系結],然後遵循相同的提示。

在此範例中,下列系結會新增至 bindings function.json檔案中的陣列:

{
    "type": "queue",
    "direction": "out",
    "name": "msg",
    "queueName": "outqueue",
    "connection": "MyStorageConnection"
}

例如,您定義將數據寫入記憶體佇列的輸出系結方式取決於您的 Python 模型版本:

@queue_output 式上的裝飾專案可用來定義記憶體佇列輸出的具名系結參數,其中 func.Out 會定義寫入的輸出。

下列範例顯示將佇列 儲存體 輸出系結新增HTTP 觸發函式之後的函式定義:

因為 HTTP 觸發的函式也會傳回 HTTP 回應,因此函式會傳回 MultiResponse 物件,此物件同時代表 HTTP 和佇列輸出。

[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
    FunctionContext executionContext)
{

這個範例是包含輸出系結之 MultiResponse 物件的定義:

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public IActionResult HttpResponse { get; set; }
}

將該範例套用至您自己的專案時,您可能需要變更 HttpRequestHttpRequestDataIActionResultHttpResponseData視您是否使用 ASP.NET Core 整合 而定。

當函式完成時,訊息會傳送至佇列。 定義輸出系結的方式取決於您的進程模型。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

@FunctionName("HttpExample")
public HttpResponseMessage run(
        @HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request, 
        @QueueOutput(name = "msg", queueName = "outqueue", 
        connection = "AzureWebJobsStorage") OutputBinding<String> msg, 
        final ExecutionContext context) {

如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

尚未提供Node.js模型 v4 的範例系結。

您定義輸出系結的方式取決於Node.js模型的版本。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg

如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

您定義輸出系結的方式取決於 Python 模型的版本。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

尚未提供Node.js模型 v4 的範例系結。

您定義輸出系結的方式取決於Node.js模型的版本。 如需詳細資訊,包括您可以參考的範例系結程式代碼連結,請參閱 將系結新增至函式

登入 Azure

您必須先登入 Azure,才能建立 Azure 資源或發布應用程式。

  1. 如果您尚未登入,請選擇 [活動] 列中的 Azure 圖示。 然後在 [資源] 區域中,選擇 [登入 Azure...]

    VS Code 中登入 Azure 視窗的螢幕快照。

    如果您已登入,而且可以看到現有的訂閱,請移至下一節。 如果您尚未擁有 Azure 帳戶,請選擇 [建立 Azure 帳戶...]。學生可以選擇 [建立 Azure 學生版帳戶...]

  2. 當在瀏覽器中收到提示時,請使用您的 Azure 帳戶認證選擇 Azure 帳戶並登入。 如果您建立新的帳戶,可以在帳戶建立之後登入。

  3. 成功登入之後,即可關閉新的瀏覽器視窗。 屬於您 Azure 帳戶的訂用帳戶會顯示在提要欄位中。

建立 Azure 資源

您必須先在 Azure 訂用帳戶中擁有函式應用程式和相關資源,才能將 Functions 專案發佈至 Azure,才能執行程式碼。 函式應用程式會為您的函式提供執行內容。 當您從 Visual Studio Code 發佈至 Azure 中的函式應用程式時,專案會封裝並部署至 Azure 訂用帳戶中選取的函式應用程式。

當您在 Azure 中建立函式應用程式時,您可以使用預設值或進階路徑來選擇快速函式應用程式建立路徑。 如此一來,您就更能控制建立遠端資源。

快速函式應用程式建立

在此區段中,您會在 Azure 訂用帳戶中建立函式應用程式和相關的資源。

  1. 選擇 [活動] 列中的 Azure 圖示。 然後在 [資源] 區域中,選取 + 圖示並選擇 [在 Azure 中建立函數應用程式] 選項。

    在 Azure 訂閱中建立資源群組

  2. 提示中會提供下列資訊:

    提示 選取項目
    選取訂用帳戶 選擇要使用的訂用帳戶。 當您只有一個訂閱顯示在 [資源] 底下時,就不會看到此提示。
    輸入函數應用程式的全域唯一名稱 輸入在 URL 路徑中有效的名稱。 您鍵入的名稱會經過驗證,確定其在 Azure Functions 中是唯一。
    選取執行階段堆疊 選擇您在本機上執行的語言版本。
    選取新資源的位置 若要獲得較佳的效能,請選擇您附近的區域

    該延伸模組會在 [Azure: 活動記錄] 面板顯示正在 Azure 建立的個別資源狀態。

    建立 Azure 資源的記錄

  3. 建立完成時,您的訂閱中會建立下列 Azure 資源。 資源會根據您的函數應用程式名稱命名:

    • 資源群組,這是相關資源的邏輯容器。
    • 標準 Azure 儲存體帳戶,其可維護專案的狀態和其他資訊。
    • 函數應用程式,其提供執行函式程式碼的環境。 函數應用程式可讓您將函式以邏輯單位分組,方便您在相同的主控方案中管理、部署及共用資源。
    • App Service 方案,其定義函數應用程式的基礎主機。
    • 連線至函數應用程式的 Application Insights 執行個體,可追蹤應用程式中函式的使用量。

    建立函式應用程式並套用部署套件之後,即會顯示通知。

    提示

    根據預設,系統會依照您提供的函數應用程式名稱建立函數應用程式所需的 Azure 資源, 並且預設會建立在與函數應用程式相同的新資源群組中。 如果您想自訂這些資源的名稱或重複使用現有的資源,必須改為使用進階建立選項發佈專案

使用進階選項將專案發佈至 Azure 中的新函式應用程式

下列步驟會將專案發佈至使用進階建立選項所建立的新函式應用程式:

  1. 在命令選擇區中,輸入 Azure Functions:在 Azure 中建立函式應用程式...(進階).

  2. 如果您未登入,系統會提示您 登入 Azure。 您也可以 建立免費的 Azure 帳戶。 從瀏覽器登入之後,請返回 Visual Studio Code。

  3. 在提示之後,提供這項資訊:

    提示 選取項目
    輸入新函式應用程式的全域唯一名稱。 輸入可識別新函式應用程式的全域唯一名稱,然後選取 Enter。 函式應用程式名稱的有效字元為 a-z0-9-
    選取執行階段堆疊。 選擇您在本機執行的語言版本。
    選取作業系統。 選擇Linux或 Windows。 Python 應用程式必須在Linux上執行。
    選取新資源的資源群組。 選擇 [建立新的資源群組],然後輸入資源組名,例如 myResourceGroup。 您也可以選取現有的資源群組。
    選取新資源的位置。 選取靠近您或靠近函式存取之其他服務的區域位置
    選取主控方案。 選擇 [無伺服器取用方案裝載] 的 [取用],只有在函式執行時才會向您收費。
    選取記憶體帳戶。 選擇 [建立新的記憶體帳戶],然後在提示字元中,輸入函式應用程式所使用之新記憶體帳戶的全域唯一名稱。 儲存體 帳戶名稱長度必須介於 3 到 24 個字元之間,且只能包含數位和小寫字母。 您也可以選取現有的帳戶。
    為應用程式選取 Application Insights 資源。 選擇 [建立新的 Application Insights 資源],然後在提示字元中輸入用來儲存函式運行時間數據之實例的名稱。

    建立函式應用程式之後會出現通知,並套用部署套件。 若要檢視建立和部署結果,包括您所建立的 Azure 資源,請選取 此通知中的 [檢視輸出 ]。

在 Azure 中取得 HTTP 觸發函式的 URL

若要從用戶端呼叫 HTTP 觸發的函式,您需要函式的 URL,此 URL 可在部署至函式應用程式之後使用。 此 URL 包含任何必要的函式金鑰。 您可以使用擴充功能來取得已部署函式的這些URL。 如果您只想在 Azure 中執行遠端函式, 請使用 Execute 函式現在 的擴充功能。

  1. 選取 F1 以開啟命令選擇區,然後尋找並執行 Azure Functions:複製函式 URL 命令

  2. 依照提示在 Azure 中選取您的函式應用程式,然後選取您想要叫用的特定 HTTP 觸發程式。

函式 URL 會複製到剪貼簿,以及查詢參數傳遞 code 的任何必要密鑰。 使用 HTTP 工具來提交 POST 要求,或瀏覽器將 GET 要求提交至遠端函式。

當擴充功能在 Azure 中取得函式的 URL 時,擴充功能會使用您的 Azure 帳戶自動擷取啟動函式所需的密鑰。 深入瞭解函式存取金鑰。 啟動非 HTTP 觸發的函式需要使用系統管理金鑰。

部署項目檔

建議您設定 持續部署 ,以便在更新連線來源位置中的來源檔案時,更新 Azure 中的函式應用程式。 您也可以從 Visual Studio Code 部署項目檔。 當您從 Visual Studio Code 發佈時,可以利用 Zip 部署技術

重要

部署至現有的函數應用程式一律會覆寫該應用程式在 Azure 中的內容。

  1. 在 Azure 活動的 [資源] 區域中,找出您剛才建立的函數應用程式資源,以滑鼠右鍵按一下該資源,然後選取 [部署至函數應用程式...]

  2. 當系統提示您覆寫先前的部署時,請選取 [部署],將函式程式碼部署至新的函數應用程式資源。

  3. 部署完成時,選取 [檢視輸出] 即可檢視建立和部署結果,包括您所建立的 Azure 資源。 如果您錯過通知,請選取右下角的鈴鐺圖示,以再次查看。

    [檢視輸出] 視窗的螢幕快照。

執行函式

Azure Functions 擴充功能可讓您執行個別函式。 您可以在本機開發電腦或 Azure 訂用帳戶的項目中執行函式。

針對 HTTP 觸發程式函式,延伸模組會呼叫 HTTP 端點。 針對其他類型的觸發程式,擴充功能會呼叫系統管理員 API 來啟動函式。 傳送至函式之要求的訊息本文取決於觸發程序類型。 當觸發程式需要測試數據時,系統會提示您輸入特定 JSON 格式的數據。

在 Azure 中執行函式

若要從 Visual Studio Code 在 Azure 中執行函式,請遵循下列步驟:

  1. 在命令選擇區中,輸入 Azure Functions:立即執行函式,然後選取您的 Azure 訂用帳戶。

  2. 從清單中,選擇您在 Azure 中的函式應用程式。 如果您沒有看到函式應用程式,請確定您已登入正確的訂用帳戶。

  3. 從清單中,選擇您想要執行的函式。 在 Enter 要求本文中,輸入要求的訊息本文,然後按 Enter 將此要求訊息傳送至您的函式。

    Enter 要求本文中的預設文字表示本文的格式。 如果您的函式應用程式沒有函式,則會顯示有此錯誤的通知錯誤。

    當函式在 Azure 中執行並傳回回應時,Visual Studio Code 會顯示通知。

您也可以從 Azure:Functions 區域執行函式,方法是在 Azure 訂用帳戶中開啟您想要從函式應用程式執行的函式快捷方式功能表,然後選取 [ 立即執行函式...]。

當您從 Visual Studio Code 在 Azure 中執行函式時,擴充功能會使用您的 Azure 帳戶自動擷取啟動函式所需的密鑰。 深入瞭解函式存取金鑰。 啟動非 HTTP 觸發的函式需要使用系統管理金鑰。

在本機執行函式

本機運行時間與在 Azure 中裝載函式應用程式的運行時間相同。 本機設定會從 local.settings.json檔案讀取。 若要在本機執行 Functions 專案,您必須符合 更多需求

將項目設定為在本機執行

Functions 運行時間會針對 HTTP 和 Webhook 以外的所有觸發程式類型,在內部使用 Azure 儲存體 帳戶。 因此,您必須將 Values.AzureWebJobs 儲存體 金鑰設定為有效的 Azure 儲存體 帳戶 連接字串。

本節使用 Visual Studio Code 的 Azure 儲存體 擴充功能搭配 Azure 儲存體 Explorer 來連線及擷取記憶體 連接字串。

設定儲存體帳戶連接字串:

  1. 在 Visual Studio 中,開啟 [Cloud Explorer],展開 [儲存體 [帳戶>] 儲存體 [您的帳戶],然後選取 [屬性],然後複製 [主要 連線 ion String] 值。

  2. 在您的專案中,開啟 local.settings.json 檔案,並將 AzureWebJobs 的值 儲存體 索引鍵設定為您複製的 連接字串。

  3. 重複上一個步驟,針對函式所需的任何其他連線,將唯一索引鍵新增至 Values 陣列。

如需詳細資訊,請參閱本機設定檔

在本機偵錯函式

若要對函式進行偵錯,請選取 F5。 如果 Core Tools 無法使用,系統會提示您安裝它。 安裝並執行 Core Tools 時,輸出會顯示在終端機中。 此步驟與從終端機執行 func start Core Tools 命令相同,但具有額外的建置工作和附加調試程式。

當項目執行時,您可以使用 延伸模組的 Execute Function Now... 功能來觸發函式,就像將專案部署至 Azure 時一樣。 在偵錯模式中執行的專案時,會如預期般在Visual Studio Code 中叫用斷點。

  1. 在命令選擇區中,輸入 Azure Functions:立即 執行函式,然後選擇 [ 本機專案]。

  2. 選擇您想要在專案中執行的函式,並在 Enter 要求本文中 輸入要求的訊息本文。 請按 Enter 鍵,將此要求訊息傳送至您的函式。 Enter 要求本文中的預設文字應該會指出本文的格式。 如果您的函式應用程式沒有函式,則會顯示有此錯誤的通知錯誤。

  3. 當函式在本機執行,並在收到響應之後,會在Visual Studio Code 中引發通知。 函式的執行資訊會顯示於 [終端機] 面板中。

在本機執行時不需要金鑰,這同時適用於函式密鑰和系統管理層級密鑰。

在本機使用應用程式設定

在 Azure 中的函數應用程式中執行時,函式所需的設定安全地儲存在應用程式設定中。 在本機開發期間,這些設定會改為新增至 local.settings.json 檔案中的 Values 集合。 local.settings.json 檔案也儲存本機開發工具使用的設定。

專案 local.settings.json 檔案中 Values 集合中的項目,是用來反映在 Azure 中鏡像函數應用程式應用程式設定中的項目。

根據預設,當專案發佈至 Azure 時,不會自動移轉這些設定。 發佈完成之後,您可以選擇將設定從 local.settings.json 發佈至 Azure 中的函式應用程式。 若要深入瞭解,請參閱 發佈應用程式設定

連線 ionStrings 中的值永遠不會發佈。

函式應用程式設定值也可以在程式碼中讀取為環境變數。 如需詳細資訊,請參閱環境變數

  • 函式應用程式設定值也可以在程式碼中讀取為環境變數。 如需詳細資訊,請參閱環境變數
  • 函式應用程式設定值也可以在程式碼中讀取為環境變數。 如需詳細資訊,請參閱環境變數
  • 函式應用程式設定值也可以在程式碼中讀取為環境變數。 如需詳細資訊,請參閱環境變數
  • 函式應用程式設定值也可以在程式碼中讀取為環境變數。 如需詳細資訊,請參閱環境變數

Azure 中的應用程式設定

專案中local.settings.json檔案中的設定應該與 Azure 中函式應用程式中的應用程式設定相同。 您新增至local.settings.json的任何設定也必須新增至 Azure 中的函式應用程式。 當您發佈專案時,不會自動上傳這些設定。 同樣地,您必須將您在入口網站中的函式應用程式中建立的任何設定下載到本機專案。

發佈應用程式設定

若要在 Azure 中將必要設定發布至函式應用程式,最簡單的方式是使用 發佈項目之後出現的 [上傳設定 ] 連結:

上傳應用程式設定的螢幕快照。

您也可以使用 Azure Functions:在命令選擇區中使用 [上傳本機設定] 命令來發佈設定 。 您可以使用 Azure Functions:新增設定命令,將個別設定新增至 Azure 中的應用程式設定

提示

發行local.settings.json檔案之前,請務必先儲存。

如果本機檔案已加密,則會再次解密、發佈和加密。 如果兩個位置有衝突值的設定,系統會提示您選擇如何繼續。

藉由展開您的訂用帳戶、函式應用程式和應用程式 設定,在 Azure:Functions 區域中檢視現有的應用程式設定

 在 Visual Studio Code 中檢視函式應用程式設定的螢幕快照。

從 Azure 下載設定

如果您已在 Azure 中建立應用程式設定,您可以使用 Azure Functions:下載遠端 設定 命令,將它們下載到local.settings.json檔案

如同上傳,如果本機檔案已加密,則會再次解密、更新和加密。 如果兩個位置有衝突值的設定,系統會提示您選擇如何繼續。

安裝系結延伸模組

除了 HTTP 和定時器觸發程式之外,系結會在擴充套件中實作。

您必須針對需要它們的觸發程式和系結,明確地安裝擴充套件。 您安裝的特定套件取決於項目的進程模型。

終端機視窗中執行 dotnet add package 命令,以安裝您在專案中所需的擴充套件。 此樣本示範如何為 隔離行程類別庫新增系結:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.<BINDING_TYPE_NAME> --version <TARGET_VERSION>

將取代 <BINDING_TYPE_NAME> 為包含所需系結的套件名稱。 您可以在支援的系結清單中找到所需的系結參考文章

將範例中的 取代 <TARGET_VERSION> 為套件的特定版本,例如 3.0.0-beta5。 有效的版本會列在個別套件頁面上,NuGet.org。對應至目前 Functions 運行時間的主要版本會在系結的參考文章中指定。

C# 文稿使用 延伸模組套件組合

安裝繫結擴充功能最簡單的方式是啟用擴充功能套件組合。 當您啟用套件組合時,系統會自動安裝一組預先定義的擴充功能套件。

若要啟用擴充功能套件組合,請開啟 host.json 檔案,並更新其內容以符合下列程式碼:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.*, 4.0.0)"
    }
}

如果基於某些原因,您無法使用擴充功能套件組合來安裝專案的系結延伸模組,請參閱 明確安裝延伸模組

監視函式

當您 在本機執行函式時,記錄數據會串流至終端機主控台。 當 Functions 專案在 Azure 中的函式應用程式中執行時,您也可以取得記錄數據。 您可以連線到 Azure 中的串流記錄,以查看近乎即時的記錄數據。 您應該啟用 Application Insights,以更完整地瞭解函式應用程式的行為。

串流記錄

當您開發應用程式時,查看近乎實時的記錄資訊通常很有用。 您可以檢視函式所產生的記錄檔數據流。 使用 命令開啟命令板中的記錄 Azure Functions: Start streaming logs 。 此輸出是 HTTP 觸發函式要求的串流記錄範例:

H T T P 觸發程式的串流記錄輸出螢幕快照。

若要深入瞭解,請參閱 串流記錄

Application Insights

您應該藉由整合函式應用程式與 Application Insights 來監視函式的執行。 當您在 Azure 入口網站 中建立函式應用程式時,預設會發生此整合。 當您在 Visual Studio 發佈期間建立函式應用程式時,您必須自行整合 Application Insights。 若要瞭解如何,請參閱 啟用Application Insights整合

若要深入了解如何使用 Application Insights 進行監視,請參閱監視 Azure Functions

C# 文稿專案

根據預設,所有 C# 項目都會建立為 C# 編譯的類別庫專案。 如果您想要改用 C# 文本專案,您必須在 Azure Functions 擴充功能設定中選取 C# 腳本作為默認語言:

  1. 選取 [檔案>喜好設定> 設定]。

  2. 移至使用者 設定> Extensions>Azure Functions。

  3. Azure 函式:項目語言選取 C#Script

完成這些步驟之後,對基礎 Core Tools 進行的呼叫會包含 --csx 選項,其會產生併發佈 C# 腳本 (.csx) 項目檔。 當您指定此預設語言時,您建立的所有項目都會預設為 C# 文稿專案。 設定預設值時,系統不會提示您選擇項目語言。 若要以其他語言建立專案,您必須變更此設定,或從使用者settings.json檔案中移除它。 拿掉此設定之後,系統會再次提示您在建立專案時選擇您的語言。

命令選擇區參考

Azure Functions 延伸模組會在區域中提供實用的圖形化介面,以便與 Azure 中的函式應用程式互動。 命令選擇區中的命令也可以使用相同的功能(F1)。 這些 Azure Functions 命令可供使用:

Azure Functions 命令 描述
新增 設定 在 Azure 中建立新的應用程式設定。 若要深入瞭解,請參閱 發佈應用程式設定。 您可能也需要 將此設定下載到本機設定
設定部署來源 連線 Azure 中的函式應用程式至本機 Git 存放庫。 若要深入瞭解,請參閱 Azure Functions 的持續部署。
連線 至 GitHub 存放庫 連線 函式應用程式至 GitHub 存放庫。
複製函式 URL 取得在 Azure 中執行的 HTTP 觸發函式遠端 URL。 若要深入瞭解,請參閱 取得已部署函式的 URL。
在 Azure 中建立函式應用程式 在 Azure 的訂用帳戶中建立新的函式應用程式。 若要深入瞭解,請參閱如何在 Azure 中發布至新的函式應用程式一節。
解密 設定 解密 Azure Functions 已加密的本機設定:加密 設定
刪除函式應用程式 從 Azure 中的訂用帳戶中移除函式應用程式。 當 App Service 方案中沒有其他應用程式時,您也可以選擇刪除它。 不會刪除其他資源,例如記憶體帳戶和資源群組。 若要移除所有資源,您應該改為 刪除資源群組。 您的本機專案不會受到影響。
Delete 函式 從 Azure 中的函式應用程式中移除現有的函式。 由於此刪除不會影響您的本機專案,因此請考慮在本機移除函式,然後 重新發佈您的專案
刪除 Proxy 從 Azure 中的函式應用程式移除 Azure Functions Proxy。 若要深入瞭解 Proxy,請參閱 使用 Azure Functions Proxy
刪除設定 刪除 Azure 中的函式應用程式設定。 此刪除不會影響local.settings.json檔案中的設定。
中斷與存放庫的連線 拿掉 Azure 中函式應用程式與原始檔控制存放庫之間的持續部署連線。
下載遠端 設定 將 Azure 中所選函式應用程式的設定下載到您的local.settings.json檔案。 如果本機檔案已加密,則會再次解密、更新和加密。 如果兩個位置有衝突值的設定,系統會提示您選擇如何繼續。 執行此命令之前,請務必儲存local.settings.json檔案的變更。
編輯設定 變更 Azure 中現有函式應用程式設定的值。 此命令不會影響local.settings.json檔案中的設定。
加密設定 加密本機設定中陣列中的Values個別專案。 在此檔案中, IsEncrypted 也會設定為 true,這會指定本機運行時間解密設定,再使用它們。 加密本機設定,以減少洩漏重要信息的風險。 在 Azure 中,應用程式設定一律會加密儲存。
立即執行函式 使用系統管理員 API 手動啟動函式。 此命令用於在偵錯期間於本機測試,以及針對在 Azure 中執行的函式。 當 Azure 中的函式啟動時,擴充功能會先自動取得系統管理密鑰,其會用來呼叫在 Azure 中啟動函式的遠端管理員 API。 傳送至 API 的訊息本文取決於觸發程式的類型。 定時器觸發程式不需要您傳遞任何數據。
初始化專案以搭配 VS Code 使用 將必要的 Visual Studio Code 專案檔新增至現有的 Functions 專案。 使用此命令來處理您使用 Core Tools 所建立的專案。
安裝或更新 Azure Functions Core Tools 安裝或更新 Azure Functions Core Tools,用來在本機執行函式。
重新部署 可讓您將項目檔從連線的 Git 存放庫重新部署至 Azure 中的特定部署。 若要從 Visual Studio Code 重新發布本機更新, 請重新發布您的專案
重新命名 設定 變更 Azure 中現有函式應用程式設定的金鑰名稱。 此命令不會影響local.settings.json檔案中的設定。 在 Azure 中重新命名設定之後,您應該 將這些變更下載到本機專案
重新啟動 重新啟動 Azure 中的函式應用程式。 部署更新也會重新啟動函式應用程式。
設定 AzureWebJobs 儲存體 設定應用程式設定的值 AzureWebJobsStorage 。 Azure Functions 需要此設定。 它會在 Azure 中建立函式應用程式時設定。
啟動 在 Azure 中啟動已停止的函式應用程式。
啟動串流記錄 在 Azure 中啟動函式應用程式的串流記錄。 如果您需要近乎即時地查看記錄資訊,請使用 Azure 遠端疑難解答期間的串流記錄。 若要深入瞭解,請參閱 串流記錄
停止 停止在 Azure 中執行的函式應用程式。
停止串流記錄 停止 Azure 中函式應用程式的串流記錄。
切換為位置設定 啟用時,請確定應用程式設定會針對指定的部署位置保存。
卸載 Azure Functions Core Tools 拿掉擴充功能所需的 Azure Functions Core Tools。
上傳本機 設定 將local.settings.json檔案中的設定上傳至 Azure 中所選擇的函式應用程式。 如果本機檔案已加密,則會再次解密、上傳和加密。 如果兩個位置有衝突值的設定,系統會提示您選擇如何繼續。 執行此命令之前,請務必儲存local.settings.json檔案的變更。
在 GitHub 中檢視認可 當您的函式應用程式連線到存放庫時,會顯示特定部署中的最新認可。
檢視部署記錄 顯示 Azure 中函式應用程式之特定部署的記錄。

下一步

若要深入瞭解 Azure Functions Core Tools,請參閱 使用 Azure Functions Core Tools

若要深入瞭解如何將函式開發為 .NET 類別庫,請參閱 Azure Functions C# 開發人員參考。 本文也提供如何使用屬性來宣告 Azure Functions 所支援之各種系結類型之範例的連結。