分享方式:


管理您的函數應用程式

在 Azure Functions 中,函數應用程式會提供個別函數的執行內容。 函數應用程式行為會套用至指定之函數應用程式所裝載的所有函數。 函數應用程式中的所有函式都必須是相同語言

函數應用程式中的個別函式會一起部署並一起調整。 相同函數應用程式中的所有函式都會隨著函數應用程式調整而共用每個執行個體的資源。

連接字串、環境變數和其他應用程式設定會針對每個函式應用程式個別定義。 函數應用程式之間必須共用的任何資料,都應該儲存於保存的存放區外部。

在 Azure 入口網站中開始使用

注意

由於 Azure 入口網站中編輯函式程式碼的限制,您應該在本機開發函式,並將程式碼專案發佈至 Azure 中的函數應用程式。 如需詳細資訊,請參閱 Azure 入口網站中的開發限制

若要檢視函數應用程式中的應用程式設定,請遵循下列步驟:

  1. 使用 Azure 帳戶登入 Azure 入口網站。 搜尋函數應用程式並加以選取。

  2. 在函數應用程式左窗格中,展開 [設定],選取 [環境變數],然後選取 [應用程式設定] 索引標籤。

    螢幕擷取畫面示範如何在函數應用程式中選取 [應用程式設定] 頁面。

使用應用程式設定

除了 Azure Functions 使用的預先定義應用程式設定外,您也可以依照函數程式碼的需求以建立任意數目的應用程式設定。 如需詳細資訊,請參閱 Azure Functions 的應用程式設定參考

這些設定會以加密方式儲存。 如需詳細資訊,請參閱 應用程式設定安全性

您可以從 Azure 入口網站並使用 Azure CLIAzure PowerShell 來管理應用程式設定。 您也可以從 Visual Studio CodeVisual Studio 管理應用程式設定。

若要檢視應用程式設定,請參閱開始使用 Azure 入口網站

[應用程式設定] 索引標籤會維護函數應用程式所使用的設定:

  1. 若要檢視應用程式設定的值,請選取 [顯示值]

  2. 若要新增設定,請選取 [+ 新增],然後輸入新索引鍵/值組的 [名稱] 和 [值]

    螢幕擷取畫面顯示函數應用程式中的 [應用程式設定] 頁面。

使用應用程式設定

這些函數應用程式設定值在您的程式碼中也可以做為環境變數加以讀取。 如需詳細資訊,請參閱這些特定語言參考文章的〈環境變數〉章節:

當您在本機開發函數應用程式時,必須在 local.settings.json 專案檔中維護這些值的本機複本。 如需詳細資訊,請參閱本機設定檔

FTPS 部署設定

Azure Functions 支援使用 FTPS 將專案程式碼部署至函數應用程式。 由於此部署方法會要求您同步觸發程序,因此不建議使用此方法。 若要安全地傳輸專案檔,請一律使用 FTPS,而不是 FTP。

若要取得 FTPS 部署所需的認證,請使用下列其中一種方法:

您可以在 Azure 入口網站中下載函數應用程式的發行設定檔,以取得 FTPS 發佈認證。

重要

發行設定檔包含重要的安全性認證。 一律保護本機電腦上的下載檔案。

若要下載函式應用程式的發佈設定檔:

  1. Azure 入口網站中,找出函數應用程式的頁面,展開左側資料行中的 [設定>組態]

  2. 在 [組態] 頁面中,選取 [一般設定] 索引標籤,並確定 SCM 基本驗證發佈認證已 [開啟]。 當此設定為 [關閉] 時,您無法使用發佈設定檔,因此請選取 [開啟],然後選取 [儲存]

  3. 返回函數應用程式的 [概觀] 頁面,然後選取 [取得發佈設定檔]

    下載發行設定檔

  4. 儲存並複製檔案的內容。

  1. 在檔案中,找出具有 publishMethod="FTP" 屬性的 publishProfile 元素。 在此元素中,publishUrluserNameuserPWD 屬性包含 FTPS 發佈的目標 URL 和認證。

主控方案類型

建立函數應用程式時,您也會在該應用程式執行所在的位置建立主控方案。 方案可以有一或多個函數應用程式。 函式的功能、調整與定價取決於方案類型。 如需詳細資訊,請參閱 Azure Functions 裝載選項

您可以從 Azure 入口網站,或使用 Azure CLI 或 Azure PowerShell API,判斷函數應用程式所使用的方案類型。

下列值表示方案類型:

方案類型 Azure 入口網站 Azure CLI/PowerShell
耗用 耗用 Dynamic
高級 ElasticPremium ElasticPremium
專用 (App Service) 各種 各種
  1. 若要判斷您函數應用程式所用的方案類型,請參閱 Azure 入口網站中,函數應用程式 [概觀] 頁面中的 [App Service 方案]

    螢幕擷取畫面顯示函數應用程式 [概觀] 頁面上的 [App Service 方案] 連結。

  2. 若要查看定價層,請選取 [App Service方案] 的名稱,然後從左窗格中選取 [設定] > [屬性]

規劃移轉

您可以在 Windows 上的使用量方案與進階方案之間移轉函數應用程式。 在方案之間移轉時,請記住下列考量:

  • 不支援直接移轉至專用 (App Service) 方案。
  • Linux 不支援移轉。
  • 來源方案和目標方案必須位於相同的資源群組和地理區域中。 如需詳細資訊,請參閱將應用程式移至另一個 App Service 方案
  • 特定 CLI 命令相依於移轉的方向。
  • 當函數應用程式在方案之間移轉時,函式執行就會發生停機。
  • 狀態和其他應用程式特定內容會維持不變,因為應用程式在移轉前後都會使用相同的 Azure 檔案儲存體共用。

您可以使用下列工具來移轉方案:

您可以使用 Azure 入口網站以切換至不同方案。

選擇 Windows 上應用程式的移轉方向。

  1. 在 Azure 入口網站中,瀏覽至您的「使用量」方案應用程式,然後選擇 [App Service 方案] 底下的 [變更 App Service 方案]

  2. 在 [方案類型] 底下選取 [進階],建立新的進階方案並選取 [確定]

如需詳細資訊,請參閱將應用程式移至另一個 App Service 方案

Azure 入口網站中的開發限制

下表顯示支援入口網站內編輯的作業系統與語言:

語言 Windows 使用量 Windows 進階 Windows 專用 Linux 使用量 Linux 進階 Linux 專用
C#
Java
JavaScript (Node.js)
Python
PowerShell
TypeScript (Node.js)

Azure 入口網站中開發函數時,請考慮以下限制:

  • 僅在入口網站中建立或修改的函數支援入口網站內輯。
  • 僅 JavaScript、PowerShell、Python 和 C# 指令碼函數支援入口網站內編輯。
  • 預覽版本的彈性使用量方案不支援入口網站內編輯。
  • 當您從 Azure 入口網站外部將程式碼部署至函數應用程式時,您就無法再於入口網站中編輯該函數應用程式的任何程式碼。 在此情況下,繼續使用本機開發
  • 針對 Python,入口網站目前不支援使用自定義模組進行開發。 若要將自定義模組新增至函式應用程式,您必須 在本機開發您的應用程式。
  • 針對已編譯的 C# 函數和 Java 函數和,您可以在入口網站中建立函數應用程式和相關資源。 不過,您必須在本機建立函式程式碼專案,然後將其發佈至 Azure。

可能的話,請在本機開發函數,並將程式碼專案發佈至 Azure 中的函數應用程式。 如需詳細資訊,請參閱如何在本機撰寫 Azure Functions 程式碼並進行測試

手動安裝延伸模組

C# 類別庫函式可以在類別庫專案中,直接納入繫結延伸模組的 NuGet 套件。 對於其他非 .NET 語言和 C# 指令碼,您應該使用延伸模組套件組合。 如果您必須手動安裝延伸模組,您可以在本機使用 Azure Functions Core Tools 來執行此作業。 如果您無法使用延伸模組套件組合,而且只能在入口網站中運作,則必須使用進階工具 (Kudu),直接在網站中手動建立 extensions.csproj 檔案。 請務必先從 host.json 檔案中移除 extensionBundle 元素。

此相同流程適用於您需要新增至應用程式的任何其他檔案。

重要

可能的話,請不要直接在 Azure 的函數應用程式中編輯檔案。 建議您在本機下載應用程式檔案、使用 Core Tools 來安裝延伸模組和其他套件、驗證您的變更,然後使用 Core Tools 或其他任一支援的部署方法重新發佈您的應用程式。

Azure 入口網站內建的 Functions 編輯器,可讓您直接在入口網站中更新函式程式碼和組態檔:

  1. 選取您的函數應用程式,然後在 [函數] 下選取 [函數]

  2. 選擇您的函式,然後在 [開發人員] 下選取 [程式碼 + 測試]

  3. 選擇要編輯的檔案,然後在完成時選取 [儲存]

您必須使用進階工具 (Kudu) 來建立和編輯 function.proj 或 extensions.csproj 等應用程式根目錄中的檔案:

  1. 選取您的函數應用程式,展開 [開發工具] ,選取 [進階工具]>[移至]

  2. 若出現提示,請利用您的 Azure 憑證登入原始檔控制管理 (SCM) 網站。

  3. 從 [偵錯主控台] 功能表中,選擇 [CMD]

  4. 瀏覽至 .\site\wwwroot,選取頂端的加號 (+) 按鈕,然後選取 [新增檔案]

  5. 命名檔案名稱 (例如 extensions.csproj),然後按下 Enter。

  6. 選取新檔案旁的編輯按鈕、在檔案中新增或更新程式碼,然後選取 [儲存]

  7. 針對 extensions.csproj 之類的專案檔,請執行下列命令來重建延伸模組專案:

    dotnet build extensions.csproj
    

平台功能

函數應用程式在 Azure App Service 平台中執行並由此平台維護。 因此,您的函數應用程式可以存取 Azure 核心虛擬主機平台的大多數功能。 當使用 Azure 入口網站時,左側窗格可供您存取許多可在函數應用程式中使用的 App Service 平台功能。

下列矩陣表示裝載方案和作業系統的 Azure 入口網站功能支援:

功能 取用方案 彈性使用量方案 進階方案 專用方案
進階工具 (Kudu) Windows:✔
Linux:X
X
App Service 編輯器 Windows:✔
Linux:X
X Windows:✔
Linux:X
Windows:✔
Linux:X
備份 X X X
主控台 Windows:命令列
Linux:X
X Windows:命令列
Linux:SSH
Windows:命令列
Linux:SSH

本文其餘部分將聚焦於入口網站中,對於下列函數應用程式相當實用的功能:

如需有關如何使用 App Service 設定的詳細資訊,請參閱設定 Azure App Service 設定

App Service 編輯器

App Service 編輯器是一個進階的入口網站內編輯器,可供您用來修改 JSON 組態檔和類似的程式碼檔案。 選擇此選項會啟動一個含有基本編輯器的個別瀏覽器索引標籤。 此編輯器可讓您與 Git 存放庫整合、執行程式碼和進行偵錯,以及修改函數應用程式設定。 與內建函式編輯器相比,此編輯器為您的函式提供了增強開發環境。

螢幕擷取畫面顯示 App Service 編輯器。

建議您考慮在本機電腦上開發函式。 在本機開發並發佈至 Azure 時,您的專案檔在 Azure 入口網站中會是唯讀狀態。 如需詳細資訊,請參閱如何在本機撰寫 Azure Functions 程式碼並進行測試

主控台

當您偏好從命令列與函數應用程式進行互動時,入口網站內主控台是一個理想的開發人員工具。 常用命令包含目錄和檔案建立與瀏覽,以及執行批次檔和指令碼。

在本機開發並發佈至 Azure 時,您的專案檔在入口網站中會是唯讀狀態。

在本機開發時,建議您使用 Azure Functions Core ToolsAzure CLI

進階工具 (Kudu)

App Service 的進階工具 (也稱為 Kudu) 可讓您存取函數應用程式的進階系統管理功能。 從 Kudu,您可以管理系統資訊、應用程式設定、環境變數、網站擴充功能、HTTP 標頭,以及伺服器變數。 您也可以透過瀏覽至函數應用程式的 SCM 端點 (例如 https://<myfunctionapp>.scm.azurewebsites.net/) 來啟動 Kudu

螢幕擷取畫面顯示 App Service (Kudo) 的進階工具。

部署中心

當您使用原始檔控制解決方案來開發及維護函式程式碼時,部署中心可讓您從原始檔控制建置及部署。 當您進行更新時,您的專案會建置並部署至 Azure。 如需詳細資訊,請參閱 Azure Functions 中的部署技術

跨原始資源共用

為了防止在用戶端上執行惡意程式碼,新式瀏覽器會封鎖來自 Web 應用程式對在個別網域中執行之資源的要求。 跨原始來源資源共用 (CORS) 可讓 Access-Control-Allow-Origin 標頭宣告可在函數應用程式上呼叫端點的來源。

當您為函數應用程式設定 [允許的原點] 清單時,Access-Control-Allow-Origin 標頭會自動新增至函數應用程式中 HTTP 端點的所有回應。

螢幕擷取畫面顯示如何設定函數應用程式的 CORS 清單。

如果有另一個網域項目,則會忽略萬用字元 (*)。

驗證

當函數使用 HTTP 觸發程序時,您可以要求呼叫必須先經過驗證。 App Service 支援 Microsoft Entra 驗證及使用社交提供者登入,例如 Facebook、Microsoft 和 X。如需設定特定驗證提供者的相關資訊,請參閱Azure App Service 驗證概觀

螢幕擷取畫面顯示如何設定函數應用程式的驗證。