[英]Azure Functions - Shared classes
我想在 Azure Functions 上使用一些共享類來避免重復代碼。
我試圖創建一個空的 C# 函數並在函數內部創建類,然后使用以下命令導入其他函數:
#r "../Shared/Class.cs"
首先,將您的共享代碼放在 Function App 目錄(例如“Shared”)的根目錄中的文件夾中。 假設我在該文件夾中放置了一個共享Message.csx
類(例如完整路徑D:\\home\\site\\wwwroot\\Shared\\Message.csx
)。
要將其包含在您的函數中,請使用#load
命令:
#load "..\Shared\Message.csx"
using System;
using Microsoft.Azure.WebJobs.Host;
public static void Run(Message message, TraceWriter log)
{
log.Info($"C# Queue trigger function processed message: {message.Id}");
}
有關更多信息,請參閱此處的幫助頁面。 默認情況下,不會跟蹤該目錄中的文件的更改。 如果你想確保當文件在目錄更改您的功能將拿起變化和重新編譯,您可以將您的“共享”目錄到watchDirectories
列表host.json
。 例如:
{
"watchDirectories": [ "Shared" ]
}
由於 Azure Functions 中的變化率,這不再是 C# 函數的推薦方法(請參閱Azure Functions 工具路線圖)。 有關在 Visual Studio 中構建 C# 項目的最現代和最有效模式的描述,請參閱以下博客文章,並以您通常在 C# 中的方式獲得共享 DLL 的所有優勢。
https://azure.github.io/AppService/2017/03/16/Publishing-a-.NET-class-library-as-a-Function-App.html
https://github.com/devkimchi/Precompiled-Azure-Functions-Revisited
考慮到 Azure Functions 是新的並且還沒有適當的文檔,讓我以更易於理解的方式回答這個問題。
讓我們一步一步來。
您需要轉到 Azure 函數“平台功能”部分。
然后導航到開發工具->高級工具:
接下來,導航到Tools->Zip Push Deploy :
接下來,按照Microsoft 文檔中的建議,在根文件夾中創建一個名為“Shared”的文件夾:
在此文件夾中,您還可以根據需要創建其他文件夾和類,例如,如果您想在 Azure 函數之間重用模型類,則創建一個名為“模型”的附加文件夾並將所需的類放在那里。
注意:
另一種方法是將 Visual Studio 與 Microsoft DevOps CI/CD 結合使用。 在那里做同樣的事情會非常簡單和容易。
在 Visual Studio 中工作並尋找一種在函數應用程序中的函數之間共享某些 C# 腳本文件的方法時,如下所示:
#load "..\Shared\MySharedCode.csx"
請注意,您應該將共享文件夾中文件的“復制到輸出目錄”屬性設置為“始終復制”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.