使用 Visual Studio Code 來開發 Azure Functions
適用於 Visual Studio Code 的 Azure Functions 擴充功能可讓您在本機開發函式,並將其部署至 Azure。 如果這是您第一次體驗 Azure Functions,可至 Azure Functions 簡介深入了解。
Azure Functions 擴充功能提供下列優點:
- 在本機開發電腦上編輯、建置及執行函數。
- 直接將 Azure Functions 專案發佈至 Azure。
- 以各種語言撰寫函式,同時利用 Visual Studio Code 的各種優點。
您正在檢視本文的 C# 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
您正在檢視本文的 Java 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
您正在檢視本文的 JavaScript 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
您正在檢視本文的 PowerShell 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
您正在檢視本文的 Python 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
您正在檢視本文的 TypeScript 版本。 請務必在文章開始處選取您偏好的 Azure Functions 程式設計語言。
如果您不熟悉 Azure Functions,建議您先閱讀 Visual Studio Code 快速入門文章。
重要
請勿在單一函數應用程式中混用本機開發與入口網站開發。 當您從本機專案發佈至函式應用程式時,部署程序將會覆寫您在入口網站開發的任何函式。
必要條件
在其中一個支援平台上安裝 Visual Studio Code。
Azure Functions 擴充功能。 您也可以安裝 Azure Tools 擴充功能套件,建議用於搭配 Azure 資源。
有效的 Azure 訂閱。 如果您還沒有帳戶,可以使用 Visual Studio Code 中的擴充功能建立一個帳戶。
需要滿足這些先決條件才能在本機執行和偵錯您的函數。 若只於 Azure Functions 建立或發佈專案則不需要。
- Azure Functions Core Tools,可提估整合的本機偵錯體驗。 安裝 Azure Functions 延伸模組後,安裝或更新 Core Tools 最簡單的方式是從命令選擇區執行
Azure Functions: Install or Update Azure Functions Core Tools
命令。
適用於 Visual Studio Code 的 C# 延伸模組。
.NET (CLI),其包含在 .NET SDK 中。
建議使用 PowerShell 7.2。 如需版本資訊,請參閱 PowerShell 版本。
建立 Azure Functions 專案
Azure Functions 延伸模組可讓您在建立第一個函數時,同時建立必要的函數應用程式專案。 使用這些步驟,可在新專案中建立 HTTP 觸發的函數。 HTTP 觸發程序是可供示範的最簡單函數觸發程序範本。
在 Visual Studio Code 中,按 F1 以開啟命令選擇區,然後搜尋並執行命令
Azure Functions: Create New Project...
。 選取專案工作區的目錄位置,並選擇 [選取]。您可以建立新資料夾,或為專案工作區選擇空白資料夾,但請勿選擇已屬於某一工作區的資料夾。
您可以改為執行命令
Azure Functions: Create New Containerized Project...
,以取得為項目產生的 Dockerfile。收到提示時,為您的專案選取語言。 如有必要,請選擇特定語言版本。
選取 [HTTP 觸發程序] 函式範本,或您可以選取 [暫時跳過] 來建立不含函式的專案。 您稍後可以隨時將函式新增至專案。
提示
您可以透過選取 [變更範本篩選條件] 選項,並將值設定為 [Core] 或 [全部],檢視其他範本。
針對函數名稱,輸入 HttpExample,選取 Enter,再選取 [函數] 授權。
此授權層級要求您在呼叫函數端點時提供函數金鑰。
從下拉式清單選取 [新增至工作區]。
在 [您是否信任此資料夾中檔案的作者?] 視窗中,選取 [是]。
Visual Studio Code 隨即使用您選擇的語言和 HTTP 觸發函數的範本建立函數。
已產生的專案檔案
專案範本會以您選擇的語言建立專案,並安裝需要的相依性。 針對任何語言,新專案具有下列檔案:
host.json:讓您設定 Functions 主機。 當您在本機和在 Azure 執行函式時,將套用這些設定。 如需詳細資訊,請參閱 host.json 參考。
local.settings.json:維持在本機執行函數時所使用的設定。 只有當您在本機執行函式時,才會使用這些設定。 如需詳細資訊,請參閱本機設定檔。
重要
由於 local.settings.json 檔案可能包含祕密,因此請務必從專案原始檔控制中排除該檔案。
Dockerfile (選擇性):透過專案的核准基礎映像,讓您從專案建立容器化功能應用程式。 只有在執行命令
Azure Functions: Create New Containerized Project...
時,您才會取得此檔案。 您可以使用 Core Tools 中的func init --docker-only
命令,將 Dockerfile 新增至現有的專案。
根據您的語言,系統會建立下列其他檔案:
HttpExample.cs 類別庫檔案,其內容會因專案在隔離式背景工作處理序或與 Azure Functions 主機一起在內含式中執行而有所不同。
根資料夾中定義專案和部署參數的 pom.xml 檔案,包括專案相依性和 Java 版本。 pom.xml 也包含部署期間所建立之 Azure 資源的相關資訊。
在您 src 路徑中的Functions.java 檔案,用來實作函式。
產生的檔案取決於為 Azure Functions 選擇的 Node.js 程式設計模型:
包含下列項目的 HttpExample 資料夾:
- function.json 定義檔案
- run.ps1 檔案,其中包含函式程式碼。
產生的檔案取決於為 Azure Functions 選擇的 Python 程式設計模型:
到這裡,您已可在本機執行 HTTP 觸發程序函數。
將函式新增至您的專案
您可以根據其中一個預先定義的 Azure Functions 觸發程式範本,將新的函式新增至現有的專案。 若要新增函數觸發程序,請選取 F1 以開啟命令選擇區,然後尋找並執行命令 Azure Functions: Create Function。 請遵循提示來選擇您的觸發程序類型,並定義觸發程序的必要屬性。 如果您的觸發程序需要存取金鑰或連接字串才能連線到服務,請先準備好該項目再建立函數觸發程序。
此動作會將新的 C# 類別庫 (.cs) 檔案新增至您的專案中。
此動作會將新的 JAVA (.java) 檔案新增至您的專案中。
此動作會在專案中建立新的資料夾。 資料夾包含新的 function.json 檔案和新的 PowerShell 程式碼檔案。
此動作的結果取決於 Python 模型版本。
連線到伺服器
您可以新增輸入或輸出繫結,以將函式連線至其他 Azure 服務。 繫結會將函式連線到其他服務,不需撰寫連接程式碼。
例如,定義將資料寫入儲存體佇列之輸出繫結的方式,取決於您的處理序模型:
如有必要,請新增支援繫結延伸模組之套件的參考。
更新函數方法,以新增定義繫結參數的屬性,例如
QueueOutput
表示佇列輸出繫結。 您可以使用MultiResponse
物件來傳回多個訊息或多個輸出資料流。
例如,若要新增將資料寫入儲存體佇列的輸出繫結,您只需要更新函式方法,新增透過 QueueOutput
註釋所定義的繫結參數。 OutputBinding<T>
物件代表函式完成時寫入輸出繫結的訊息。
例如,定義將資料寫入儲存體佇列之輸出繫結的方式,取決於您的 Node.js 模型版本:
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 模型版本:
下列範例顯示在將佇列儲存體輸出繫結新增至由 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) {
如需詳細資訊,包括您可以參考的範例繫結程式碼之連結,請參閱 將繫結新增至函式。
$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 模型的版本。 如需詳細資訊,包括您可以參考的範例繫結程式碼之連結,請參閱 將繫結新增至函式。
登入 Azure
您必須先登入 Azure 後,才能建立 Azure 資源或發佈應用程式。
如果您尚未登入,請在 [活動列] 中選取 [Azure] 圖示。 然後在 [資源] 下,選取 [登入 Azure]。
如果您已登入,而且可以看到現有的訂閱,請移至下一節。 如果您尚未擁有 Azure 帳戶,請選取 [建立 Azure 帳戶]。 學生可以選取 [建立 Microsoft Azure 學生版帳戶]。
在瀏覽器中出現提示時,選取您的 [Azure 帳戶],並使用您的 Azure 帳戶認證登入。 如果您建立新的帳戶,可以在帳戶建立之後登入。
成功登入之後,您可以關閉新的瀏覽器視窗。 屬於您的 Azure 帳戶的訂用帳戶會顯示在側邊欄中。
建立 Azure 資源
您必須先在 Azure 訂閱中具有函數應用程式和相關資源來執行您的程式碼,才能將 Functions 專案發佈至 Azure。 函式應用程式會為函式提供執行內容。 當您從 Visual Studio Code 發佈至 Azure 中的函數應用程式時,專案會封裝並部署到您 Azure 訂用帳戶中選取的函數應用程式。
當您在 Azure 中建立函數應用程式時,可以選擇使用預設值的快速函數應用程式建立路徑,或是提供您進階選項 (例如使用現有 Azure 資源) 的路徑。 如此一來,您更能充分掌控建立遠端資源的過程。
在此區段中,您會在 Azure 訂閱中建立函數應用程式和相關的資源。 根據預設行為,系統會為您做出許多資源建立決策。 若要進一步控制已建立的資源,您必須改為使用進階選項建立函數應用程式。
在 Visual Studio Code 中,選取 F1 以開啟命令選擇區。 在提示 (
>
) 中,輸入然後選取 [Azure Functions:在 Azure 中建立函式應用程式]。依照提示提供下列資訊:
在 [Azure:活動記錄] 面板中,Azure 延伸模組會顯示在 Azure 中建立的個別資源狀態。
建立函式應用程式時,在您的 Azure 訂用帳戶中會建立下列相關資源。 資源會根據您為函式應用程式輸入的名稱來命名。
- 資源群組,這是相關資源的邏輯容器。
- 標準 Azure 儲存體帳戶,其可維護專案的狀態和其他資訊。
- 函數應用程式,其提供執行函式程式碼的環境。 函數應用程式可讓您將函式以邏輯單位分組,方便您在相同的主控方案中管理、部署及共用資源。
- Azure App Service 方案,其定義函式應用程式的基礎主機。
- 連線至函式應用程式的 Application Insights 執行個體,可追蹤函式在應用程式中的使用情況。
建立函式應用程式並套用部署套件之後,即會顯示通知。
提示
根據預設,系統會根據您為函數應用程式輸入的名稱來建立函數應用程式所需的 Azure 資源。 根據預設,資源會以在相同的新資源群組中的函式應用程式來建立。 如果您想要自訂相關聯資源的名稱或重複使用現有的資源,請使用進階建立選項來發佈專案。
建立 Azure 容器應用程式部署
您可以使用 Visual Studio Code 來建立容器化程式碼專案的 Azure 資源。 當擴充功能在資源建立期間偵測到 Dockerfile 是否存在時,這會詢問您是否要部署容器映射,而不只是程式碼。 Visual Studio Code 會為已與 Azure Functions 整合的容器化程式專案建立 Azure 容器應用程式環境。 如需詳細資訊,請參閱 Azure Functions 的 Azure 容器應用程式裝載。
注意
容器部署需要適用於 Visual Studio Code 的 Azure 容器應用程式擴充功能。 此延伸模組目前為預覽狀態。
建立程序取決於您選擇快速建立,還是需要使用進階選項:
在 Visual Studio Code 中,按 F1 以開啟命令選擇區,然後搜尋並執行命令
Azure Functions: Create Function App in Azure...
。出現提示時,請選擇 [容器映像]。
提示中會提供下列資訊:
提示 選取項目 選取訂用帳戶 選擇要使用的訂用帳戶。 當您只有一個訂閱顯示在 [資源] 底下時,就不會看到此提示。 輸入函數應用程式的全域唯一名稱 輸入在 URL 路徑中有效的名稱。 您鍵入的名稱會經過驗證,確定其在 Azure Functions 中是唯一。 選取新資源的位置 若要獲得較佳的效能,請選擇您附近的區域。 該延伸模組會在 [Azure: 活動記錄] 面板顯示正在 Azure 建立的個別資源狀態。
如需在容器應用程式中執行容器化函式所需資源的詳細資訊,請參閱必要資源。
注意
您目前無法使用 Visual Studio Code 將容器化函式應用程式部署到 Azure Functions 整合的容器應用程式環境。 您必須改為將容器映像發佈至容器登錄,然後將該登錄映像設定為容器應用程式裝載函式應用程式的部署來源。 如需詳細資訊,請參閱在容器中建立函式應用程式,以及在登錄中更新映像。
部署專案檔
建議您設定持續部署,以便在您更新連線來源位置中的來源檔案時,一併更新 Azure 中的函數應用程式。 您也可以從 Visual Studio Code 部署專案檔。 當您從 Visual Studio Code 發佈時,可以利用 Zip 部署技術。
重要
部署至現有的函數應用程式一律會覆寫該應用程式在 Azure 中的內容。
在命令選擇區中,輸入並選取 [Azure Functions:部署至函式應用程式]。
選取您剛才建立的函數應用程式。 當系統提示您覆寫先前的部署時,請選取 [部署],將函式程式碼部署至新的函數應用程式資源。
部署完成時,選取 [檢視輸出] 以檢視建立和部署結果,包括您所建立的 Azure 資源。 如果您錯過通知,請選取右下角的鈴鐺圖示,以再次查看。
取得 Azure 中 HTTP 觸發函式的 URL。
若要從用戶端呼叫 HTTP 觸發的函數,您需要該函數的 URL;這在部署到函數應用程式後即可取得。 此 URL 會包含必要的函式金鑰。 您可以使用擴充功能來為您部署的函式取得這些 URL。 如果您只想執行在 Azure 中的遠端函式,請使用擴充功能的立即執行 Execute 函式的功能。
選取 F1 以開啟命令選擇區,然後尋找並執行命令 Azure Functions: Copy Function URL。
依照提示在 Azure 中選取函數應用程式,然後選取您想要叫用的特定 HTTP 觸發程序。
函式 URL 會複製到剪貼簿,同時還有 code
查詢參數所傳遞的任何必要金鑰。 使用 HTTP 工具來提交 POST 要求,或使用瀏覽器向遠端函數提交 GET 要求。
當延伸模組取得 Azure 中的函數 URL 時,該延伸模組會使用您的 Azure 帳戶,自動擷取啟動函數所需的金鑰。 深入了解函式存取金鑰。 啟動非 HTTP 觸發的函式需要使用系統管理金鑰。
執行函式
Azure Functions 擴充功能可讓您執行個別的函式。 您可以在本機開發電腦或在 Azure 訂閱的專案中執行函式。
針對 HTTP 觸發程序函式,擴充功能會呼叫 HTTP 端點。 針對其他類型的觸發程序,延伸模組會呼叫系統管理員 API 來啟動函數。 傳送至函數的要求訊息本文取決於觸發程序的類型。 當觸發程序需要測試資料時,系統會提示您輸入特定 JSON 格式的資料。
在 Azure 中執行函式
若要在 Azure 中,從 Visual Studio Code 執行函數,請遵循以下步驟:
在命令選擇區中,輸入 Azure Functions: Execute function now,然後選取您的 Azure 訂用帳戶。
從清單中選擇您在 Azure 中的函數應用程式。 如果沒看到您的函數應用程式,請確定您已登入正確的訂閱。
從清單中,選擇您想要執行的函數。 在 [輸入要求本文] 中,輸入要求的訊息本文,然後按 Enter 將此要求訊息傳送至您的函數。
[輸入要求本文] 中的預設文字會指出本文的格式。 如果您的函數應用程式沒有函式,則會顯示這樣的錯誤通知。
當函數在 Azure 中執行並傳回回應時,Visual Studio Code 會顯示通知。
您也可以從 [Azure: 函數] 區域執行函數,方法是開啟要從 Azure 訂用帳戶中的函數應用程式執行之函數的捷徑功能表,然後選取 [立即執行函數...]。
當您從 Visual Studio Code 執行在 Azure 中的函數時,延伸模組會使用您的 Azure 帳戶,自動擷取啟動函數所需的金鑰。 深入了解函式存取金鑰。 啟動非 HTTP 觸發的函式需要使用系統管理金鑰。
在本機執行函式
本機執行階段就是在 Azure 中裝載您函數應用程式的執行階段。 本機設定會從 local.settings.json 檔案讀取。 若要在本機執行 Functions 專案,您必須符合更多需求。
將專案設定為在本機執行
針對 HTTP 和 Webhook 以外的所有觸發程序類型,Functions 執行階段會在內部使用 Azure 儲存體帳戶。 您必須將 Values.AzureWebJobsStorage 金鑰設為有效的 Azure 儲存體帳戶連接字串。
本節使用 適用於 Visual Studio Code 的 Azure 儲存體擴充功能 搭配 Azure 儲存體總管以連線並擷取儲存體連接字串。
設定儲存體帳戶連接字串:
在 Visual Studio 中,開啟 [Cloud Explorer],展開 [儲存體帳戶]>「您的儲存體帳戶」,然後選取 [屬性] 並複製 [主要連接字串] 值。
在您的專案中,開啟 local.settings.json 檔案並將 AzureWebJobsStorage 機碼的值設定為您所複製的連接字串。
重複上一步,針對函數所需的其他任何連接,將唯一機碼新增至 [值] 陣列。
如需詳細資訊,請參閱本機設定檔。
在本機偵錯函式
若要對函式進行偵錯,請選取 F5。 如果 Core Tools 無法使用,系統會提示您安裝它。 安裝並執行 Core Tools 時,輸出會顯示在終端機中。 此步驟與從終端機執行 func start
Core Tools 命令相同,但有額外的組建工作和一個附加的偵錯工具。
當專案執行時,您可以使用擴充功能的 [立即執行函式...] 功能來觸發函式,就像將專案部署到 Azure 時一樣。 在偵錯模式中執行的專案時,中斷點會如您所預期在 Visual Studio Code 中叫用。
在命令選擇區中,輸入 Azure Functions: Execute function now,然後選擇 [本機專案]。
選擇您想在專案中執行的函式,然後在輸入要求本文中輸入要求的訊息本文。 請按 Enter 鍵,將此要求訊息傳送至您的函式。 輸入要求本文中的預設文字應該會指出本文的格式。 如果您的函數應用程式沒有函式,則會顯示這樣的錯誤通知。
當函式在本機執行並收到回應後,會在 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:函式區域中的現有應用程式設定。
從 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# 開發工具組中的 NuGet 命令來安裝系結延伸模組套件。
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 觸發函式的串流記錄範例:
若要深入了解,請參閱串流記錄。
Application Insights
您應將函數應用程式與 Application Insights 整合,以監視函式的執行情形。 當您在 Azure 入口網站中建立函數應用程式時,系統預設會為您執行這項整合。 當您在 Visual Studio 發佈期間建立函數應用程式時,您必須自行整合 Application Insights。 若要了解如何進行,請參閱啟用 Application Insights 整合。
若要深入了解如何使用 Application Insights 進行監視,請參閱監視 Azure Functions。
C# 指令碼專案
根據預設,所有 C# 專案都會建立為 C# 編譯的類別庫專案。 如果您想要改用 C# 指令碼專案,您必須在 Azure Functions 擴充功能設定中選取 C# 指令碼作為預設語言:
選取 [檔案] > [喜好設定] > [設定]。
前往 [使用者設定]>[擴充功能]>[Azure Functions]。
從 [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 所支援的各種繫結類型。