適用於:Azure Logic Apps(標準)
當你的整合工作流程需要超越內建操作和預建連接器的邏輯時,請建立一個本地 函式 ,讓程式碼保持專屬於你的邏輯應用程式解決方案。 這個本地函式是自訂的 .NET 程式碼,你可以在與呼叫者工作流程相同的 Azure Logic Apps Standard 專案中撰寫、執行、除錯並部署。 透過將函式保持本地化,你可以開發、保護、部署、擴展並操作整個工作流程及其自訂程式碼,作為一個單一應用程式。
本地函式幫助你的工作流程執行以下任務:
- 實作自訂的商業邏輯與計算。
- 解析專有或複雜的入站訊息。
- 驗證、豐富或對資料執行簡單轉換。
- 為 API、連接器或合作夥伴系統調整傳出訊息的格式。
- 重用現有整合解決方案中適用的 .NET 輔助邏輯,包括 BizTalk Server 遷移場景。
透過局部函數,你可以達成以下目標:
| Goal | Capability |
|---|---|
| 開發並除錯一個解決方案 | 在同一個 Visual Studio Code 工作區建立工作流程和本地函式,並在一次除錯階段中逐步完成。 |
| 一起部署 | 將本地函式與呼叫者工作流程一同建置與部署,無需自行配置獨立的服務計畫。 |
| 縮小服務邊界 | 避免為工作流程特定程式碼設置獨立的函式應用程式、HTTP 端點、認證流程和網路跳躍。 |
| 結合低程式碼與專業程式碼工具 | 使用連接器和工作流程協調來進行整合流程。 使用本地函式來處理專門的 .NET 邏輯。 |
本地函式與 Azure Functions 中獨立函式應用中所託管的函式不同。 Azure Functions 在程式碼必須暴露獨立端點、跨應用程式共享、遵循自身部署與版本週期,或獨立擴展時效果最佳。 當你的程式碼需要在特定的 Azure Logic Apps Standard 解決方案中運作,並與呼叫者工作流程共享應用程式生命週期時,請使用本地函式。
本指南說明如何利用 Visual Studio Code 建立、建置、呼叫、除錯及部署標準工作流程的本地 .NET 函式。
先決條件
一個 Azure 帳號和訂閱。 免費申請Azure帳號。
具備 Azure Logic Apps (標準) 擴充功能的最新的 Visual Studio Code。
關於前置條件,請參見單租戶Azure Logic Apps中以 Visual Studio Code 建立標準工作流程。
該擴充功能提供以下功能與好處:
- 藉由建立具有彈性和控制的函式來解決最具挑戰性的整合問題,以撰寫您自己的程式碼。
- 在 Visual Studio Code 中本地除錯程式碼。 在相同的偵錯工作階段中逐步執行您的程式碼和工作流程。
- 隨著工作流程部署程式碼。 不需要其他服務方案。
- 支援 BizTalk Server 遷移情境,讓您能將自訂的 .NET 投資從本地移轉至雲端。
一個本地資料夾,用於你的程式碼專案。
限制
你只能在 Windows 上的 Visual Studio Code 中撰寫本地函式。 此功能支援 .NET Framework 與 .NET 8,適用於託管於 Workflow Service Plan、App Service 環境 v3(ASE v3)或混合型的標準工作流程。
你不能在 Azure 入口網站創建自訂函式。 然而,若要在工作流程中處理自訂函式的輸出,請遵循以下步驟:
部署好函式到 Azure 後,請在 Azure 入口網站依照從工作流程呼叫程式碼的步驟進行操作。
將名為在此邏輯應用程式中呼叫本機函式的內建動作新增到您的工作流程。 選擇你想要的已部署自訂函式並執行你的程式碼。
使用後續的工作流程動作來參考自訂函式輸出,就像在其他工作流程中一樣。 您可以檢視內建動作的執行歷程記錄、輸入和輸出。
關於一般限制,請參見限制與配置參考,Azure Logic Apps。
1:建立程式碼專案
Visual Studio Code 的 Azure Logic Apps(標準)擴充套件包含一個程式碼專案範本,提供簡化的體驗,方便撰寫、除錯及部署自己的程式碼與工作流程。 這個專案範本會建立一個工作區檔案和兩個範例專案:一個用來撰寫程式碼的專案,另一個用來建立工作流程的專案。
附註
您無法對程式碼和工作流程使用相同的專案資料夾。
要建立程式碼專案,請遵循以下步驟:
在 Visual Studio Code 中,登入你的 Azure 帳號。
如果登入時間比平常更長,Visual Studio Code 會提示你透過 Microsoft 認證網站登入,並提供裝置驗證碼。 若要使用該代碼登入,請依照以下步驟操作:
選擇 使用裝置代碼,然後選擇 複製並開啟。
選擇 開啟連結 以開啟新的瀏覽器視窗並繼續前往認證網站。
在 [登入您的帳戶] 頁面上輸入您的驗證碼,然後選取 [下一步]。
在活動列中,選擇 Azure 圖示。
在Azure視窗中,前往Workspace區塊。 將指標移到標題區,讓工具列顯示出來。
從 Azure Logic Apps 選單中,選擇 建立新的邏輯應用程式工作空間。
在 「選擇資料夾 」視窗中,瀏覽到本地專案資料夾,選擇該資料夾 ,然後選擇。
在 「建立新邏輯應用程式」工作區 視窗中,根據 工作區名稱 提示,輸入你工作區的名稱,然後按下 Enter 鍵。
此範例使用
weather-app工作區名稱:
在「 為你的新專案選擇範本 」提示時,選擇 「Logic app with custom code project」。
對於 選擇目標框架提示,請選擇 .NET Framework 或 .NET 8。
請依照以下提示提供以下資訊:
提示 範例值 邏輯應用程式名稱 weather-logic-app函式名稱用於你的.NET函數專案 WeatherForecastNamespace 用於你的 .NET 函式專案 Contoso.Enterprise為您的專案第一個工作流程選擇範本:
- 有狀態工作流程
- 無狀態工作流程
- 自主代理
- 會話代理
- 先跳過有狀態工作流程 工作流程名稱 weather-workflow在「 選擇你想如何開啟你的專案 」提示時,請選擇 「在目前視窗中開啟」。
完成此步驟後,Visual Studio Code 會建立你的工作區,預設包含 .NET 函式專案和邏輯應用程式專案,例如:
在 檔案總管 視窗中,請注意工作區中的以下資料夾:
Folder 描述 < 工作區名稱> 包含你的 .NET 函式專案和 Logic App 工作流程專案。 < 邏輯應用程式名稱> 包含你 Logic App 專案的檔案和其他產物。 例如, workflow.json 檔案就是工作流程定義檔,你可以在那裡建立工作流程。 < 函數名稱> 包含你 .NET 函式專案的檔案及其他產物。 例如,<function-name>.cs 檔案是程式碼檔案,您可以在其中撰寫程式碼。 對於 啟用 Azure 用於邏輯應用程式的連接器的<logic-app-name>提示,請選擇 使用 Azure 的連接器。
對於Select subscription提示,請選擇你想要的Azure訂閱。
對於「 選擇新資源資源群組」 的提示,請選擇你想要的資源群組或 建立新的資源群組。
在選擇新資源的提示時,選擇部署的Azure區域。
對於選擇Azure連接器認證方法,請選擇用於需要認證的連線的認證類型。
驗證類型 描述 受管理的識別 選擇 「管理服務身份 」以使用邏輯應用程式資源上的系統指派或使用者指派身份。
預設情況下,標準邏輯應用程式資源已啟用系統指派身份。 不過,你需要設定身份,並設定目標資源的角色存取權,以及其他相關條件。
欲了解更多資訊,請參閱 「將角色基礎存取權分配給受管理身份」。連接鍵 透過使用連接字串和存取鍵來設定對目標資源的存取。
完成這些步驟後,繼續進入下一節,以便撰寫你的程式碼。
2:撰寫你的程式碼
在 檔案總管 視窗中,展開函式專案資料夾,並開啟 <函式名稱>.cs 檔案。
此檔案包含範例程式碼及您先前提供的數值的特定程式碼元素。
在這個範例中, WeatherForecast.cs 函式檔案包含以下代碼元素及其範例值:
程式碼元素 價值 命名空間名稱 Contoso.Enterprise類別名稱 WeatherForecast函式名稱 WeatherForecast函數參數 zipCode、temperatureScale傳回類型 Task<Weather>複雜類型 Weather下列範例顯示完整的範例程式碼:
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace Contoso.Enterprise { using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Azure.Functions.Extensions.Workflows; using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; /// <summary> /// Represents the WeatherForecast flow invoked function. /// </summary> public class WeatherForecast { private readonly ILogger<WeatherForecast> logger; public WeatherForecast(ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger<WeatherForecast>(); } /// <summary> /// Executes the logic app workflow. /// </summary> /// <param name="zipCode">The zip code.</param> /// <param name="temperatureScale">The temperature scale (e.g., Celsius or Fahrenheit).</param> [FunctionName("WeatherForecast")] public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale) { this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale); // Generate random temperature within a range based on the temperature scale Random rnd = new Random(); var currentTemp = temperatureScale == "Celsius" ? rnd.Next(1, 30) : rnd.Next(40, 90); var lowTemp = currentTemp - 10; var highTemp = currentTemp + 10; // Create a Weather object with the temperature information var weather = new Weather() { ZipCode = zipCode, CurrentWeather = $"The current weather is {currentTemp} {temperatureScale}", DayLow = $"The low for the day is {lowTemp} {temperatureScale}", DayHigh = $"The high for the day is {highTemp} {temperatureScale}" }; return Task.FromResult(weather); } /// <summary> /// Represents the weather information for WeatherForecast. /// </summary> public class Weather { /// <summary> /// Gets or sets the zip code. /// </summary> public int ZipCode { get; set; } /// <summary> /// Gets or sets the current weather. /// </summary> public string CurrentWeather { get; set; } /// <summary> /// Gets or sets the low temperature for the day. /// </summary> public string DayLow { get; set; } /// <summary> /// Gets or sets the high temperature for the day. /// </summary> public string DayHigh { get; set; } } } }函式定義包含可用來開始使用的預設
Run方法。 此範例Run方法展示了自訂函數功能所能提供的一些功能,例如傳遞不同的輸入與輸出,包括複數 .NET 類型。< function-name>.cs 檔案也包含
ILogger介面,提供支援將事件記錄到 Application Insights 資源的介面。 你可以將追蹤資訊傳送給 Application Insights,並與工作流程的追蹤資訊一同儲存,例如:private readonly ILogger<WeatherForecast> logger; public WeatherForecast(ILoggerFactory loggerFactory) { logger = loggerFactory.CreateLogger<WeatherForecast>(); } [FunctionName("WeatherForecast")] public Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale) { this.logger.LogInformation("Starting WeatherForecast with Zip Code: " + zipCode + " and Scale: " + temperatureScale); <...> }用你自己的範例函式程式碼替換,並根據你的特定情境編輯預設
Run方法。 或者,您可以複製函式,包括[FunctionName("<function-name>")]宣告,然後使用唯一名稱重新命名函式。 然後,您可以編輯重新命名的函式,以符合您的需求。
此範例繼續使用原始範例程式碼,假設不作更改。
3:編譯並建置你的程式碼
寫完程式碼後,編譯以確保沒有建置錯誤。 你的 .NET 函式專案會自動包含編譯任務,將程式碼編譯並加入 Logic App 專案的 lib\custom 資料夾。 工作流程會在這個資料夾裡尋找自訂函式。 根據你的.NET版本,這些任務會將組件放入 lib\custom\net472 或 lib\custom\net8 資料夾。
請遵循下列步驟:
在Visual Studio Code中,在活動欄選擇Explorer。
在 [ 資源管理器] 視窗中,開啟函式專案資料夾的快捷功能表,然後選取 [ 建置函式專案]。
建置任務會執行於函式專案上。 如果你的建置成功, 終端 機視窗會顯示 建置成功 訊息。
確認邏輯應用程式專案中有下列項目:
在你的工作區中,展開以下資料夾:<your-logic-app>>lib\custom>net472 或 net8,依照你的.NET版本。 確認 net472 或 net8 子資料夾包含執行程式碼所需的組合語言(DLL)檔案,包括一個名為 <function-name>.dll的檔案。
在您的工作區中,展開下列資料夾:<您的邏輯應用程式>>lib\custom><function-name>。 確認 <函式名稱> 子資料夾包含一個 function.json 檔案,裡面包含你所寫函式程式碼的元資料。 工作流程設計工具會使用此檔案來判斷呼叫程式碼時所需的輸入和輸出。
下列範例顯示邏輯應用程式專案中產生的範例組件和其他檔案:
4:從工作流程呼叫你的程式碼
確認你的程式碼能編譯,且 Logic App 專案包含執行所需的檔案後,設定工作流程來呼叫程式碼。
在檔案總管視窗中,展開<workspace-name>、<logic-app-name>,然後展開<workflow-name>。
打開 workflow.json的捷徑選單,選擇 「開啟設計器」。
工作流程設計器會開啟並顯示預設工作流程,並包含以下觸發條件與動作:
運算 描述 Trigger 內建的 請求觸發器名為 「當收到 HTTP 請求時」。 Action 內建的動作命名為在此邏輯應用程式中呼叫本地函式。 Action 內建 的回應動作稱為 Response ,只有在使用 Request 觸發時才會用來回覆呼叫者。 在設計者中,選取名為「在此邏輯應用程式中呼叫本地函式」的動作。
動作的資訊窗格會打開,讓你可以設定自訂函式呼叫,例如:
請檢視並確認函 式名稱 參數值是否設定為你想執行的函式。 檢閱或變更函式使用的任何其他參數值。
5:除錯你的程式碼和工作流程
針對以下 Azure 儲存體 服務,啟動 Azurite 儲存模擬器:
- Azure Blob 服務
- Azure Queue Service
- Azure Table Service (Azure 表格服務)
從 Visual Studio Code View 選單中,選擇 Command Palette。
在出現的提示中,從列表中選擇 Azurite: Start Blob Service 。
從出現的工作目錄清單中,選擇你的邏輯應用程式。
針對 [Azurite:啟動佇列服務] 和 [Azurite:啟動表格服務] 重複這些步驟。
如果成功,螢幕底部的 Visual Studio Code 工作列會顯示三個儲存服務正在執行。
請依照以下步驟將除錯器綁定到你的邏輯應用程式專案和 .NET 函式專案中:
在 Visual Studio Code 中,在活動列選擇 Run and Debug(鍵盤:Ctrl+Shift+D)。
從 執行與除錯 清單中,選擇 帶有本地功能的執行/除錯邏輯應用程式(<你的邏輯應用程式>),然後選擇 播放 (綠色箭頭)。
以下事件發生:
- [終端機] 視窗隨即開啟,並顯示已啟動的偵錯程序。
- 偵錯主控台 視窗會開啟並顯示偵錯狀態。
- 在 Visual Studio Code 底部,工作列會變成橘色,表示 .NET 除錯器已載入。
要設定任何中斷點,請在函式定義(<function-name>.cs)或工作流程定義(workflow.json)中,找到你想要的斷點行號,然後選擇相鄰欄位,例如:
若要手動執行工作流程中的請求觸發器,請開啟工作流程 的概覽 頁面:
從你的 Logic 應用程式專案中,打開 workflow.json 檔案的捷徑選單,然後選擇 「總覽」。
在工作流程的 [概觀] 頁面上,當您想要手動啟動工作流程時,可以使用 [執行觸發程序] 按鈕。 在 [工作流程屬性] 下,[回撥 URL] 值是工作流程中要求觸發程序建立的可呼叫端點的 URL。 您可以將要求傳送至此 URL,以從其他應用程式觸發工作流程,包括其他邏輯應用程式工作流程。
在 [概觀] 頁面工具列上,選取 [執行觸發程序]。
工作流程開始執行之後,偵錯工具會啟動您的第一個中斷點。
工作流程執行完成之後,[概觀] 頁面會顯示已完成的執行,以及該執行的基本詳細資料。
若要檢閱工作流程執行的詳細資訊,請選取已完成的執行。 或者,從 [持續時間] 資料行旁邊的清單,選取 [顯示執行]。
6:部署你的程式碼
部署你的自訂函式就像部署 Logic 應用程式專案一樣。 無論你是從 Visual Studio Code 部署,還是使用 CI/CD DevOps 流程,務必在部署前先完成程式碼建置。 另外,在部署前,確保所有相依的組件都存在於以下邏輯應用程式專案資料夾中:
.NET 4.7.2:lib/custom/net472 資料夾
.NET 8:lib/custom/net8 資料夾
更多資訊請參閱 Deploy Standard 工作流程,從 Visual Studio Code 到 Azure。
相依性插入
當你選擇 .NET 8,標準工作流程中的自訂.NET程式碼支援依賴注入(DI)。 這項功能讓你只需註冊一次服務,讓它們在執行時自動被你的自訂程式碼函式使用,而不是在每個函式中建立相依關係。
附註
只有在 Visual Studio Code 中的 .NET 8 自訂程式碼專案支援相依注入。
若不使用依賴注入,自訂程式碼函數通常會:
- 直接在函式中建立服務實例。
- 在多個功能或工作流程中重複邏輯。
- 將商業邏輯與設置和配置程式碼結合。
隨著工作流程的成長,自訂程式碼變得越來越難以測試、重用和維護。 透過依賴注入,你可以:
- 將業務邏輯與工作流程執行分開。
- 在多個自訂程式碼函式間重複使用共享服務。
- 將自訂程式碼與標準 .NET 開發模式對齊。
自訂程式碼在生產工作流程中變得更易管理,尤其是當多個工作流程依賴相同邏輯時。
何時使用依賴注入
如果你有簡單或一次性的自訂程式碼函式,可能不需要依賴注入。 然而,如果您的自訂程式碼有以下需求,請考慮使用相依注入:
- 多個工作流程使用或共享相同的自訂程式碼功能。
- 你的自訂程式碼函式包含隨時間改變的商業或路由邏輯。
- 你需要更好的可測試性或長期維護性。
依賴注入如何影響自訂的 .NET 函式
相依注入不會改變你呼叫自訂 .NET 函式的方式或你的工作流程行為。 此功能僅改變底層的自訂程式碼結構,但產生相同的結果。 下列步驟說明此程式:
- Azure Logic Apps 會載入你自訂的程式碼專案。
- Azure Logic Apps 會即時化、註冊並注入所需的服務到函式中。
- 函式是透過注入的依賴執行。
啟用依賴注入
要對自訂 .NET 程式碼使用相依注入,請完成以下要求:
建立自訂程式碼專案時,選擇 .NET 8。
只有 .NET 8 的自訂程式碼專案支援依賴注入。
在你的專案中,新增一個
StartupConfiguration類別來定義相依清單。 您要實作IConfigureStartup介面並使用IServiceCollection註冊您的依賴,例如:using Microsoft.Azure.Functions.Extensions.Workflows; using Microsoft.Extensions.DependencyInjection; public class StartupConfiguration : IConfigureStartup { /// <summary> /// Configures services for the custom code function to use. /// </summary> /// <param name="services">The service collection to configure.</param> public void Configure(IServiceCollection services) { // Register the routing service with dependency injection services.AddSingleton<IRoutingService, OrderRoutingService>(); services.AddSingleton<IDiscountService, DiscountService>(); } }IConfigureStartup介面定義於Microsoft.Azure.Functions.Extensions.Workflows,而IServiceCollection定義於Microsoft.Extensions.DependencyInjection。 更多資訊請參見 StartupConfiguration.cs。在你的自訂程式碼函式類別建構器中,透過定義建構參數來初始化註冊服務,而不是在函式中建立,例如:
public class MySampleFunction { private readonly ILogger<MySampleFunction> logger; private readonly IRoutingService routingService; private readonly IDiscountService discountService; public MySampleFunction(ILoggerFactory loggerFactory, IRoutingService routingService, IDiscountService discountService) { this.logger = loggerFactory.CreateLogger<MySampleFunction>(); this.routingService = routingService; this.discountService = discountService; } // Add your function logic here }
除了建立並部署自訂程式碼專案外,你不需要採取其他步驟、編輯工作流程,或在 Azure Logic Apps 中做其他設定變更來啟用相依注入。
欲了解更多資訊,請參閱 自訂程式碼相依注入範例。
將您自己的 NuGet 套件帶入自訂程式碼專案
對於使用 .NET 8 的 NuGet 自訂程式碼專案,你可以包含並管理自己的 NuGet 套件,而不必解決與語言工作主機所用相依關係的衝突。 直接將組件相依性添加到專案中的單獨組件位置即可。 除以下例外外,您可以攜帶任何專案所需的 .NET 8 相容相依組合語言版本:
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.DependencyInjection.Abstractions
- Microsoft.Azure.Functions.Extensions.Workflows.Abstractions
問題疑難排解
動作資訊窗格錯誤
在工作流程設計工具上,當您選取名為 [在此邏輯應用程式中呼叫本機函式] 的內建動作時,動作的資訊窗格會顯示下列訊息:
Failed to retrieve dynamic inputs. Error details:
在這種情況下,檢查你的 Logic App 專案,看看 LogicApp\lib\custom 資料夾是不是空的。 如果是空的,從 終端機 選單中選擇 執行任務>建置函式。
目前沒有任何具有指定名稱的處理序正在執行
如果你執行工作流程時出現這個錯誤訊息,很可能是你把除錯程序綁定在 .NET 函式上,而不是你的邏輯應用程式。
若要修正此問題,請從 [執行並偵錯] 清單,選取 [連結至邏輯應用程式 (LogicApp)],然後選取 [播放] (綠色三角形)。
套件未正確匯入
如果輸出視窗顯示類似以下訊息的錯誤,請確保你至少安裝了 .NET 6.0。 如果您已安裝此版本,請嘗試解除安裝再重新安裝。
C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.targets(83,5): warning : The ExtensionsMetadataGenerator package was not imported correctly. Are you missing 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets' or 'C:\Users\yourUserName\.nuget\packages\microsoft.azure.webjobs.script.extensionsmetadatagenerator\4.0.1\build\Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.props'? [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] WeatherForecast -> C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\\bin\Debug\net472\WeatherForecast.dll C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : It was not possible to find any compatible framework version [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : The specified framework 'Microsoft.NETCore.App', version '6.0.0' was not found. [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj] C:\Users\yourUserName\.nuget\packages\microsoft.net.sdk.functions\4.2.0\build\Microsoft.NET.Sdk.Functions.Build.targets(32,5): error : - Check application dependencies and target a framework version installed at: [C:\Desktop\...\custom-code-project\MyLogicAppWorkspace\Function\WeatherForecast.csproj]
帶有錯誤的建置失敗 CS1031 與 CS1001
如果你的函式沒有包含變數,而你正在編譯程式碼,輸出視窗可能會顯示以下錯誤訊息:
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
Build FAILED.
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1031: Type expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
C:\Users\yourUserName\...\custom-code-project\Function\func.cs (24,64): error CS1001: Identifier expected [C:\Users\yourUserName\...\custom-code-project\Function\func.csproj]
0 Warning(s)
2 Error(s)
為了解決這個問題,在你的程式碼 Run 中,加入以下參數:
string parameter1 = null
下列範例顯示 Run 方法簽章的顯示方式:
public static Task<Weather> Run([WorkflowActionTrigger] int zipCode, string temperatureScale, string parameter1 = null)