共用方式為


使用 Visual Studio Code 來開發 Azure Functions

適用於 Visual Studio Code 的 Azure 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 類別庫檔案,其內容會因專案在隔離式背景工作處理序或與 Azure Functions 主機一起在內含式中執行而有所不同。

  • 根資料夾中定義專案和部署參數的 pom.xml 檔案,包括專案相依性和 Java 版本。 pom.xml 也包含部署期間所建立之 Azure 資源的相關資訊。

  • 在您 src 路徑中的Functions.java 檔案,用來實作函式。

產生的檔案取決於為 Azure Functions 選擇的 Node.js 程式設計模型:

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

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

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

產生的檔案取決於為 Azure Functions 選擇的 Python 程式設計模型:

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

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

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

將函式新增至您的專案

您可以根據其中一個預先定義的 Azure 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 模型時,您必須使用 output 物件上的 storageQueue 函式,在函式定義中手動新增 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 檔案上按一下滑鼠右鍵 (macOS 上為 Ctrl+按一下滑鼠),選取 [新增繫結],然後遵循相同的提示操作。

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

{
    "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; }
}

將該範例套用至您自己的專案時,視乎於您是否使用 ASP.NET Core 整合而定,您可能需要將 HttpRequest 變更為 HttpRequestData,以及將 IActionResult 變更為 HttpResponseData

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

@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 帳戶...]。學生可以選擇 [建立 Microsoft Azure 學生版帳戶...]

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

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

建立 Azure 資源

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

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

快速函數應用程式建立

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

  1. 在 Visual Studio Code 中,按 F1 開啟命令選擇區,並搜尋並執行命令 Azure Functions: Create Function App in 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-
    選取執行階段堆疊。 選擇您在本機執行的語言版本。
    選取 OS。 選擇 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 Functions: Deploy to Function App...

  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 專案,您必須符合更多需求

將專案設定為在本機執行

針對 HTTP 和 Webhook 以外的所有觸發程序類型,Functions 執行階段會在內部使用 Azure 儲存體帳戶。 您必須將 Values.AzureWebJobsStorage 金鑰設為有效的 Azure 儲存體帳戶連接字串。

本節使用 適用於 Visual Studio Code 的 Azure 儲存體擴充功能 搭配 Azure 儲存體總管以連線並擷取儲存體連接字串。

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

  1. 在 Visual Studio 中,開啟 [Cloud Explorer],展開 [儲存體帳戶]>「您的儲存體帳戶」,然後選取 [屬性] 並複製 [主要連接字串] 值。

  2. 在您的專案中,開啟 local.settings.json 檔案並將 AzureWebJobsStorage 機碼的值設定為您所複製的連接字串。

  3. 重複上一步,針對函數所需的其他任何連接,將唯一機碼新增至 [值] 陣列。

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

在本機偵錯函式

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

當專案執行時,您可以使用擴充功能的 [立即執行函式...] 功能來觸發函式,就像將專案部署到 Azure 時一樣。 在偵錯模式中執行的專案時,中斷點會如您所預期在 Visual Studio Code 中叫用。

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

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

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

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

在本機使用應用程式設定

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

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

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

ConnectionStrings 中的值永遠不會發佈。

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

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

Azure 中的應用程式設定

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

發佈應用程式設定

要將必要設定上傳至 Azure 中函數應用程式,最簡單的方式就是使用成功發佈專案之後出現的上傳設定連結:

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

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

提示

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

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

藉由展開您的訂閱、函數應用程式和 [應用程式設定] 以檢視 Azure:函式區域中的現有應用程式設定。

 在 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>。 您可以在支援的繫結清單中找到所需的參考文章。

請以特定版本的套件 (例如 3.0.0-beta5) 取代範例中的 <TARGET_VERSION>。 有效的版本會列在 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. 前往 [使用者設定]>[擴充功能]>[Azure Functions]

  3. 從 [Azure Function:專案語言] 中選取 [C#Script]

完成這些步驟之後,對基礎 Core Tools 進行的呼叫會包含 --csx 選項,其會產生和發佈 C# 指令碼 (.csx) 專案檔。 當您指定此預設語言時,您建立的所有專案都會預設為 C# 指令碼專案。 預設值設定後,系統不會提示您選擇專案語言。 若要以其他語言建立專案,您必須變更此設定,或將其從 user 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 方案中沒有其他應用程式時,您也可以選擇刪除它。 此舉不會刪除其他資源,例如儲存體帳戶和資源群組。 若要移除所有資源,您應該改用刪除資源群組。 您的本機專案不會受到影響。
刪除函式 從 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 中重新啟動函數應用程式。 部署更新也會重新啟動函數應用程式。
設定 AzureWebJobsStorage 設定 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 所支援的各種繫結類型。