7

如何讓 Azure Functions 也可以支援 dotnet watch 自動監視程式變更重啟

 4 years ago
source link: https://blog.miniasp.com/post/2021/09/11/Azure-Functions-can-use-dotnet-watch-msbuild
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在用 .NET Core 3.1 開發 Azure Functions 的時候一直以來有個困擾,那就是每次改完程式都要回到 Terminal 中斷程式執行,並且重新啟動,沒有像其他應用程式那樣可以用 dotnet watch run 自動監視檔案變更就自動重啟應用程式。雖然這個功能沒有內建在 func start 命令中,但是我卻發現 .NET CLI 竟然有個 dotnet watch msbuild 可以用,雖然陽春了點,但其實也是還是可以滿足需求! ?

建立 Azure Functions 應用程式

  1. 安裝 Azure CLIAzure Functions Core Tools 3.x 工具

    choco install azure-cli azure-functions-core-tools-3 azure-cli -y
    
  2. 建立 Azure Functions 應用程式

    func init MyFunc --worker-runtime dotnet
    cd MyFunc
    
  3. 建立 Function 函式

    func templates list -l
    func templates list -l C#
    
    func new --template "Http trigger" --name Funcion1
    
  4. 啟動 Azure Functions 應用程式

    func start
    
  5. 測試 API 連線

    http://localhost:7071/api/Funcion1?name=Will
    

設定程式碼變更就自動重新啟動

  1. 開啟 MyFunc.csproj 專案檔

    請加入以下自訂的 RunFunctions 目標:

    <Target Name="RunFunctions">
        <Exec Command="func start --verbose=false" />
    </Target>
    
  2. 使用 dotnet watch msbuild 建置並執行目標

    這裡透過 /t:RunFunctions 明確指定要執行 MSBuild 中的 RunFunctions 目標(Target),啟動之後就會自動監視資料夾中的 *.cs 檔案變更,有變更就會自動重新啟動 func start 執行!

    dotnet watch msbuild /t:RunFunctions -noLogo
    

    由於這招是透過 dotnet watch msbuild 先建置專案,之後再透過 func start 啟動專案,而 func start 本身就包含了 MSBuild 命令,所以等於會建置兩次,因此速度稍微慢一點。雖然有 func start --no-build 參數可以避免重複建置,但是這個命令會在啟動時找不到 Function 可用,這個問題我已經回報 No job functions found if run "func start --no-build" #2705 列管中,持續追蹤!


Recommend

  • 23
    • titangene.github.io 4 years ago
    • Cache

    GitLab Page 自動部署 Vue CLI 專案

    手動將 Vue CLI build 出來,然後再 push 至遠端部署,這些步驟雖然很簡單,但這樣不是很有效率,所以應透過自動部署來處理。本篇介紹如何透過 GitLab CI/CD 來將 Vue...

  • 19
    • blog.darkthread.net 4 years ago
    • Cache

    CSS 筆記 - 客製自動跳號格式

    CSS 筆記 - 客製自動跳號格式 2020-12-18 10:12 PM 0 1,214 這篇筆記技術成分不高,主要是自己備忘用的。如果你已知道(或是完全不想知道)怎麼在網頁用 <ol...

  • 6

    為 OLED 顯示器加入自動捲動顯示功能-黑暗執行緒Arduino/ESP 程式執行期間要顯示訊息,開發測試期間時可用 Serial.print() 走 USB 線傳回電腦端。實務執行時不可能永遠連著電腦只為了收訊息,一般會外接個小螢幕,古早時代最常用的是照片裡的 1602 液晶螢幕:

  • 7

    1 元解決 ESP32 開發板無法全自動上傳問題-黑暗執行緒ESP32 開發板有多種版本,有些版本有整合 CH340 或 CP2102 USB-to-UART 晶片,開發板上有 Micro USB 孔可以連電腦...

  • 9

    在 Azure 上建立虛擬機器(VM)的時候,有個 自動關機 (Auto-shutdown) 的功能可以非常便利的設定每天定時關機的時間,但是卻沒有 自動開機 的便利選項。今天這篇文章,我要來介紹一個超級簡單就可以設定完成...

  • 14
    • tech.hahow.in 4 years ago
    • Cache

    如何自動化 GitHub Releases 流程

    如何自動化 GitHub Releases 流程繼上一篇強者我同事分享的文章《完善 GitHub Flow 最後一哩路 — Pr...

  • 15

    如何利用 PowerShell 自動將應用程式註冊到工作排程器 (Task Scheduler)最近一直在處理不同專案的 CI/CD 作業,有個自動化排程作業就需要將應用程式註冊到 工作排程器 (Task Scheduler) 之中,因此就研究了一下如何利用 PowerShell 來完成這個...

  • 5

    Azure 監視器警示串接 Slack API 建立雲端資源警報器-黑暗執行緒 前幾天保哥分享了一則鬼故事 - 因為沒有正確啟動 MFA...

  • 11

    Windows CPU/RAM/Disk 效能監視 CLI 工具 講到在 Windows 觀察 CPU、RAM 跟硬碟... 等效能數據,大家應該會馬上想到效能監視器(Performance Monitor)。

  • 10

    用 36 行 C# 寫個 CPU、RAM、Disk 效能監視 WebAPI-黑暗執行緒 前幾天分享過好用的 CPU/RAM/Disk 效能監視 CLI 工具,並用它

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK