iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
2
Everything on Azure

三十天.NET❤️Azure漸進式開發專案系列 第 4

三十天.NET與Azure漸進式開發專案(4):WebJob排程器自動Git備份

Git要達到像Azure提供的排程備份,需要藉助WebJob加上批次檔來幫忙


【第一步】
首先在我們自己的電腦建立一個Bat批次檔:
邏輯很簡單: 在app根目錄 > 添加修改的檔案 > 提交 > 上傳,另外備註部分我習慣加上日期時間在 commit 作為標記,讀者可以照自己習慣做修改。

cd "D:\home\site\wwwroot"  
git add .   
git commit -m "(%DATE%  %TIME%)  scheduled commit"  
git push  

2018-10-09.19.59.45-image.png

【第二步】

  1. 在App Service功能單找到Web工作,新增工作
  2. 檔案上傳選擇我們剛才建立的BAT批次檔
  3. 觸發程序選擇排程
  4. 填上CRON區間時間
    2018-10-09.19.59.49-image.png

附註:
WebJob使用CRON指定時間區間
不熟悉的大大可以到線上工具了解 Online Cron,舉例0 */15 * * * *代表每15分鐘跑一次

【第三步】
記錄察看結果,沒意外會顯示執行成功紀錄(STATUS=Success)
2018-10-09.19.59.58-image.png
最後,在 DevOps Repos 可以看到成功上傳紀錄
2018-10-09.20.00.02-image.png

線上調整

當想要小調整WebJob內容可以到 App_Data\jobs 底下修改內容,測試可以到右上角點"Run On Console",如圖片
2018-10-09.20.00.27-image.png

總結

使用Git做排程器雖然麻煩,相對的也會獲得好處

  1. 可以使用忽略設定 gitignore ,自由決定哪些資料類型、資料夾不要列入備份,避免浪費資源去備份不必要檔案,這是很棒的一個優點。
    舉例:像一次性cache檔案、超過一個月的log檔案其實不必要列入備份。
  2. 速度快,因為使用增量備份的形式
  3. 雖然免費,但沒有備份次數上限、頻率限制!

最後 Azure WebJob 當然不只這點能耐,它不只能執行簡單邏輯Bat,還可以執行.NET程式,甚至還有提供SDK可以使用,明天讓我們一探究竟吧。

紀錄:Azure總花費金額:0


上一篇
三十天.NET與Azure漸進式開發專案(3):App Service備份、Git遠端備份
下一篇
三十天.NET與Azure漸進式開發專案(5):WebJob+C#做排程器,更新server圖片到圖床
系列文
三十天.NET❤️Azure漸進式開發專案30

1 則留言

1
yaojen
iT邦新手 5 級 ‧ 2019-08-20 14:37:05

暐翰
請問邦主,如果有使用DevOps Repos,還需備份嗎?
這邊文章是將要備份的資料,備份到local端嗎?
再麻煩邦主解惑,謝謝。

看更多先前的回應...收起先前的回應...
暐翰 iT邦大師 1 級 ‧ 2019-08-20 16:33:58 檢舉

如果有使用DevOps Repos,還需備份嗎?

備份到Azure DevOps Repos就可以

將要備份的資料,備份到local端嗎?

不是,備份到Azure DevOps雲端

yaojen

yaojen iT邦新手 5 級 ‧ 2019-08-21 11:19:26 檢舉

暐翰
抱歉,邦主~~我問的不清楚。
如果專案本身就是透過Azure DevOps來進行版控跟發佈到 Azure Web App的話,是不是就不用透過WebJob 備份回Azure DevOps?
再麻煩解惑了,謝謝。

暐翰 iT邦大師 1 級 ‧ 2019-08-21 12:11:43 檢舉

需要額外備份
這邊主要備份的是正式環境的資料,像是正式環境運行中產生的log檔案

yaojen iT邦新手 5 級 ‧ 2019-08-21 14:49:31 檢舉

瞭解了!非常感謝。

我要留言

立即登入留言