Azure Functions 的持續部署

您可以使用 Azure Functions,透過利用原始檔控制整合持續部署程式碼。 原始檔控制整合可啟用工作流程,其中程式代碼更新會觸發從專案到 Azure 的建置、封裝和部署。

持續部署對於整合多個經常參與的專案而言是一個絕佳選項。 當您使用持續部署時,會維護程式碼的單一事實來源,方便團隊輕鬆地共同作業。

本文中的步驟說明如何使用 Azure 入口網站 中的部署中心,在 Azure 中設定函式應用程式的連續程式代碼部署。 您也可以使用 Azure CLI 設定持續整合。

Functions 支援這些來源,以持續部署至您的應用程式:

在 Azure Repos維護您的項目程式代碼,這是 Azure DevOps 中的其中一項服務。 同時支援 Git 和 Team Foundation 版本控制。 與 Azure Pipelines 組建提供者搭配使用。 如需詳細資訊,請參閱 什麼是 Azure Repos?

您也可以將函式應用程式連線到外部 Git 存放庫,但這需要手動同步處理。 如需部署選項的詳細資訊,請參閱 Azure Functions 中的部署技術。

注意

本文所涵蓋的持續部署選項專屬於僅限程式代碼部署。 如需容器化函式應用程式部署,請參閱 啟用對 Azure 容器的持續部署。

需求

若要讓持續部署成功,您的目錄結構必須與 Azure Functions 預期的基本資料夾結構相容。

特定函數應用程式中所有函式的程式碼,都位於包含主機設定檔的根專案資料夾中。 host.json 檔案內含執行階段專屬設定,且位於函式應用程式的根資料夾中。 bin 資料夾包含函數應用程式所需的套件和其他程式庫檔。 函數應用程式所需的特定資料夾結構取決於語言:

函式應用程式中的所有函式都必須共用相同的語言堆疊。

建置提供者

建置程式代碼專案是部署程式的一部分。 特定建置程式取決於您的特定語言堆疊、操作系統和裝載方案。 組建可以在本機或遠端完成,視您的特定裝載而定。 如需詳細資訊,請參閱 遠端建置

Functions 支持這些組建提供者:

Azure Pipelines 是 Azure DevOps 中的其中一項服務,也是 Azure Repos 專案的預設建置提供者。 您也可以使用 Pipelines 從 GitHub 建置專案。 在 Pipelines 中,有專為 AzureFunctionApp 部署至 Azure Functions 而設計的工作。 此工作可讓您控制專案如何建置、封裝及部署。

您可以使用的組建提供者選項取決於您的特定程式碼部署來源。

部署中心

Azure 入口網站 提供函式應用程式的部署中心,讓您更輕鬆地設定持續部署。 您設定持續部署的方式取決於程序代碼所在的特定原始檔控制,以及 您選擇的組建提供者

Azure 入口網站 中,流覽至您的函式應用程式頁面,然後選取左窗格中 [部署] 底下的 [部署中心]。

您在 Azure 入口網站 中選擇來源存放庫的函式應用程式部署中心螢幕快照。

從下列其中一個選項選取要維護專案程式代碼的來源存放庫類型:

使用 Azure Pipelines 的 Azure Repos 部署是在 Azure DevOps 入口網站中定義,而不是從函式應用程式進行。 如需從 Azure Repos 建立管線型部署的逐步指南,請參閱 使用 Azure Pipelines 持續傳遞。

部署完成之後,來自指定來源的所有程式代碼都會部署到您的應用程式。 此時,部署來源中的變更會觸發在 Azure 中對這些函數應用程式變更的部署。

考量

規劃持續部署策略時,您應該記住這些考慮:

  • GitHub 是唯一支援在取用方案上執行之 Linux 應用程式持續部署的來源,這是 Python 應用程式的熱門裝載選項。

  • 在 Azure 中,函式的部署單位是函數應用程式。 函式應用程式中的所有函式都會同時部署在相同的套件中。

  • 啟用持續部署之後,Azure 入口網站 中的函式程式代碼存取會設定為唯讀,因為已知真相來源位於別處。

  • 您應該一律設定預備位置的持續部署,而不是針對生產位置。 當您使用生產位置時,程式代碼更新會直接推送至生產環境,而不會在 Azure 中驗證。 相反地,啟用對預備位置的持續部署、確認預備位置中的更新,並在一切正常執行之後,您可以將 預備位置程式代碼交換至生產環境。

  • 部署中心不支援針對具有輸入網路限制的函式應用程式啟用持續部署。 您需要改為直接在 GitHub 或 Azure Pipelines 中設定組建提供者工作流程。 這些工作流程也需要在與函式應用程式相同的虛擬網路中使用虛擬機,做為自我裝載代理程式(Pipelines)自我裝載執行器(GitHub)。

在應用程式建立期間持續部署

目前,當您在 Azure 入口網站 中建立函式應用程式時,可以使用 GitHub Actions 從 GitHub 設定持續部署。 您可以在 [建立函式應用程式] 頁面中的 [部署] 索引標籤上執行此動作。

如果您想要使用不同的部署來源或建置提供者進行持續整合,請先建立函式應用程式,然後返回入口網站,並在 部署中心設定持續整合。

啟用部署的基本身份驗證

根據預設,您的函式應用程式會以已停用端點的基本驗證存取 scm 權來建立。 這會封鎖所有無法使用受控識別來存取 scm 端點的方法發佈。 在沒有基本身份驗證的情況下,部署中詳述停用端點的發佈影響scm

重要

當您使用基本認證時,會以純文本傳送認證。 若要保護這些認證,使用基本身份驗證時,您只能透過加密連線 (HTTPS) 存取 scm 端點。 如需詳細資訊,請參閱 安全部署

若要對端點啟用基本身份驗證 scm

  1. Azure 入口網站中,瀏覽至您的函式應用程式。

  2. 在應用程式的左側功能表中,選取 [設定]>[一般設定]

  3. 將 [SCM 基本驗證發佈認證] 設定[開啟],然後選取 [儲存]。

下一步