Share via


Visual Studio for Mac 中的 Azure Functions 簡介

重要

根據 Microsoft 的新式生命週期原則,Visual Studio for Mac 計畫於 2024 年 8 月 31 日停用。 雖然您可以繼續使用 Visual Studio for Mac,但 Mac 上的開發人員還有幾個其他選項,例如用於 VS Code 的新 C # 開發套件延伸模組之預覽版本。

了解有關支援時間表和替代方案的詳細資訊

Azure Functions 是一種不必明確佈建或管理基礎結構,就能在雲端建立和執行事件驅動程式碼片段 (函式) 的方法。 如需 Azure Functions 的詳細資訊,請參閱 Azure Functions 文件

需求

Visual Studio for Mac 7.5 和更新版本包含 Azure 函式工具。

若要建立和部署函式,您還需要 Azure 訂用帳戶。 如果您沒有 Azure 帳戶,您可以立即免費註冊,並享有 12 個月的免費熱門服務、200 美元免費點數和 25+ 個以上的免費服務 ->https://azure.com/free

建立您的第一個 Azure Functions 專案

  1. 在 Visual Studio for Mac 中,選取 [檔案] > [新增方案]

  2. 從 [新增專案] 對話方塊,選取 [雲端] > [一般] 下的 Azure Functions 範本,然後按一下 [下一步]

    New Project dialog showing Azure Functions option

  3. 選取您想要使用的初始 Azure Functions 範本,並輸入您的函數名稱,然後按 [下一步]

    New Project dialog showing Azure Functions templates

    提示

    即使配套的 Azure Functions 執行階段和範本 (CLI) 盡可能保持在最新,也無可避免會過時。 建立新的 Functions 專案時,Visual Studio for Mac 會檢查 CLI 的更新,並會通知您,如下圖所示。 只要按一下按鈕即可下載更新的範本。 New project dialog showing Azure Functions updates are available

    根據您選取的函數類型,下一頁將會提示您鍵入詳細資料 (例如存取權限),如下圖所示:

    New Project dialog showing additional option

    如需不同類型之 Azure Functions 範本以及設定每個範本所需之繫結屬性的詳細資訊,請參閱可用函數範本一節。 在此範例中,我們會使用 HTTP 觸發程式,並將訪問許可權設定為匿名。

  4. 在您設定參數之後,請選擇專案的位置,然後按一下 [建立]

Visual Studio for Mac 會建立包含預設函數的 .NET Standard 專案。 其中也包含多種 AzureWebJobs 套件以及 Newtonsoft.Json 套件的 NuGet 參考。

Visual Studio for Mac editor displaying a brand new Azure function from template

新的專案會包含下列檔案:

  • your-function-name.cs – 此類別包含您所選取函數的未定案程式碼。 它包含 具有函式名稱的 FunctionName 屬性,以及指定函式觸發程式屬性的觸發程式屬性(例如 HTTP 要求)。 如需函式方法的詳細資訊,請參閱 Azure Functions C# 開發人員參考文章。
  • host.json - 此檔案描述 Functions 主機的全域設定選項。 如需範例檔案以及此檔案的可用設定相關資訊,請參閱 Azure Functions 的 host.json 參考
  • local.settings.json - 此檔案包含用於在本機執行函式的所有設定。 Azure Functions Core Tools 會使用這些設定。 如需詳細資訊,請參閱 Azure Functions Core Tools 文章中的本機設定檔

現在您已在 Visual Studio for Mac 建立了新的 Azure Functions 專案,因此可從本機電腦試用預設 HTTP 觸發函式。

在本機測試函式

透過 Visual Studio for Mac 中的 Azure Functions 支援,您可以在本機開發電腦上測試函式並對其偵錯。

  1. 若要在本機測試您的函式,請按 Visual Studio for Mac 中的執行按鈕:

    Start debugging button in Visual Studio for mac

  2. 執行專案會在 Azure 函式上啟動本機偵錯,並開啟新的終端機視窗,如下圖所示:

    terminal window showing function output

    請從輸出中複製 URL。

  3. 將 HTTP 要求的 URL 貼到您的瀏覽器位址列。 在 URL 結尾新增查詢字串 ?name=<yourname>,然後執行要求。 下圖顯示函式傳回瀏覽器中對本機 GET 要求的回應:

    HTTP request in browser

將另一個函數新增至專案

函式範本讓您能夠使用最常見的觸發程序和範本快速建立新函式。 若要建立其他類型的函式,請執行下方作業:

  1. 若要新增函式,請在專案名稱按一下滑鼠右鍵,然後選取 [新增] > [新增函式...]

    context action for adding new function

  2. 從 [新增 Azure 函式] 對話方塊選取您要的函式:

    new Azure function dialog

    Azure 函式範本的清單會在 [可用的函式範本] 區段中提供

您可以使用上述程序將其他函數新增至函數應用程式專案。 專案中的每個函數都可以有不同的觸發程序,但函數只能有一個觸發程序。 如需詳細資訊,請參閱 Azure Functions 觸發程序和繫結概念

發佈至 Azure

  1. 以滑鼠右鍵按一下專案名稱,然後選取 [發佈] > [發佈至 Azure]Context menu with Publish > Publish to Azure... option highlighted

  2. 如果您已將 Azure 帳戶連線至 Visual Studio for Mac,則會顯示可用的應用程式服務清單。 如果您尚未登入,則系統會提示您這麼做。

  3. 從 [Publish to Azure App Service] \(發行至 Azure App Service\) 對話方塊中,您可以選取現有應用程式服務,或按一下 [新增] 來建立新的應用程式服務。

  4. 在 [建立新的 App Service] 對話方塊中,輸入您的設定:New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    設定 描述
    App Service 名稱 識別新函數應用程式的全域唯一名稱。
    訂用帳戶 要使用的 Azure 訂用帳戶。
    資源群組 要在其中建立函數應用程式的資源群組名稱。 選擇 + 來建立新的資源群組。
    服務方案 選擇現有方案,或建立自訂方案。 選擇區域中接近您或接近您函數所存取之其他服務的位置。
  5. 按 [下一步] 來建立儲存體帳戶。 Functions 運行時間需要 Azure 儲存體 帳戶。 按一下 [自訂] 來建立一般用途儲存體帳戶,或使用現有儲存體帳戶:

    New App Service dialog with prompt for storage account name.

  6. 按一下 [建立],以在 Azure 中使用這些設定來建立函數應用程式和相關資源,以及部署您的函數專案程式碼。

  7. 您可能會在發佈期間提示您輸入對話框,通知您「更新 Azure 上的函式版本」。 按一下 [是]

    Prompt asking to

函數應用程式設定

您在 local.settings.json 中新增的任何設定也必須新增至 Azure 中的函數應用程式。 當您發行專案時,不會自動上傳這些設定。

若要存取您的應用程式設定,請前往 Azure 入口網站,網址為:https://ms.portal.azure.com/。 在 [函數應用程式] 下,選取 [函數應用程式],並反白顯示您的函數名稱:

Azure Functions menu

從 [概觀] 索引標籤中,選取 [已設定的功能] 下的 [應用程式設定]

Over tab of Azure function

從這裡,您可以設定函數應用程式的應用程式設定,您可以在其中新增應用程式設定或修改現有應用程式設定:

application settings area of Azure portal

您可能需要設定的其中一個重要設定是 FUNCTIONS_EXTENSION_VERSION。 從 Visual Studio for Mac 發行時,此值應該設定為 beta

可用的函式範本

  • GitHub 觸發程序 - 回應您的 GitHub 存放庫中發生的事件。 如需詳細資訊,請參閱有關 GitHub 的 Azure Functions 文章

    • GitHub 註解工具 - 這個函式會在收到問題或提取要求的 GitHub Webhook 時執行,並新增註解。
    • GitHub WebHook - 此函數會在收到 GitHub Webhook 時執行。
  • HTTP - 使用 HTTP 要求來觸發程式碼執行。 下列 HTTP 觸發程序有明確的範本:

    • HTTP 觸發程序
    • HTTP GET 建立、更新、讀取和刪除 (CRUD)
    • HTTP POST CRUD
    • 具有參數的 HTTP 觸發程式
  • 計時器 - 依預先定義的排程執行清理或其他批次工作。 這個範本採用兩個欄位:名稱和排程,即六個欄位的 CRON 運算式。 如需詳細資訊,請參閱有關時間的 Azure Functions 文章

  • 佇列觸發程式 – 這是函式,會在訊息抵達 Azure 佇列 儲存體 佇列時回應。 除了函式名稱之外,這個範本也接受路徑 (會從中讀取訊息的佇列名稱) 和儲存體帳戶連線 (包含儲存體帳戶連接字串的應用程式設定名稱)。 如需詳細資訊,請參閱有關佇列儲存體的 Azure Functions 文章

  • Blob 觸發程序 - 在 Azure 儲存體 Blob 新增到容器時加以處理。 除了函式名稱之外,這個範本也接受路徑和連線屬性。 路徑屬性是觸發程序會監視的儲存體帳戶內部路徑。 連線帳戶是包含儲存體帳戶連接字串的應用程式設定名稱。 如需詳細資訊,請參閱 Azure Functions Blob 儲存體文章

  • 泛型 WebHook - 這個簡單函式會在每次從支援 Webhook 的任何服務收到要求時執行。 如需詳細資訊,請參閱泛型 Webhook 的 Azure Functions 文章

  • Durable Functions 協調流程 – Durable 函式可讓您在無伺服器環境中撰寫具狀態函式。 此擴充功能會為您管理狀態、設定檢查點和重新啟動。 如需詳細資訊,請參閱 Durable 函式的指南。

  • 影像大小調整工具 - 每當有 Blob 新增到容器時,這個函式都會建立調整過大小的影像。 這個範本接受路徑和連接字串、小型影像輸出及中型影像輸出。

  • SAS 權杖 - 這個函式會為指定的 Azure 儲存體容器和 Blob 名稱產生 SAS 權杖。 除了函式名稱之外,這個範本也接受路徑和連線屬性。 路徑屬性是觸發程序會監視的儲存體帳戶內部路徑。 連線帳戶是包含儲存體帳戶連接字串的應用程式設定名稱。 存取權限也需要設定。 授權等級會控制是否函式需要 API 金鑰,以及使用哪一個金鑰;函式會使用函式金鑰;管理員則使用您的帳戶存取金鑰。 如需詳細資訊,請參閱產生 SAS 令牌範例的 C# Azure 函式。