透過 Kudu API 實做 App Service WebJob 管理平台

  • 121
  • 0

前言

因為需要讓使用者可以自行執行和察看 App Service 上的 WebJob 的狀態,但是又不希望還需要另外開 Azure Portal 權限給使用者,因此會需要可以透過程式來控制 WebJob,找了一下發現 Kudu 是有提供 API 的,因此就透過 API 實做出類似 Kudu 後台的 WebJob 管理介面,在這一個管理平台上可以同時管理多組 App Service 站台底下的 WebJob,後面就來說明該如何設定和使用這一個平台。

...繼續閱讀 »

使用 Azure DevOps 部署到 App Service WebJob

前言

在 Azure 上面執行排程程式除了 Azure Function、Logic App 等服務以外,最方便的方式還是使用 App Service 裡面的 WebJob,它可以執行很多種類型的程式,所以我們可以簡單的開發一個 Console 程式去執行我們的排程程式,而當然也要讓它可以自動化部署,在設定上會有一些細節需要注意,所以特別針對一些設定和參數來記錄一下部署的流程。

...繼續閱讀 »

使用 Azure DevOps 部署到 Azure Kubernetes Services

前言

本系列的第三篇文章,這次要部署的服務就是 Azure Kubernetes Services,現在很多服務架構上都會使用上 K8S,而在 Azure 上面也提供一個受控的 K8S 服務,就是 Azure Kubernetes Services,它可以減少我們管理 K8S 的一些成本,需要更新 K8S 版本的時候也可以一鍵點選就可以升級節點的 K8S 版本,需要增加節點的時候也可以很方便的透過手動或是設定自動調整,如此一來我們就可以專注在程式的部署上就好,不用太擔心整個 K8S 叢集的維護和管理。

...繼續閱讀 »

使用 Azure DevOps 部署到 App Service 預備環境 (Slot) 並進行切換

前言

App Service 有一個很實用的功能就是預備環境 (Slot),他可以方便我們在部署程式的時候可以先佈到預備環境,測試完成之後可以直接和正式環境進行切換 (Swap),也可以在發現有沒測試到的嚴重問題的時候可以再切換一次,就可以快速的退到前一版的環境,那要結合 Azure Devops 的話就可以達到自動化的部署和切換,而且可以加上審核的關卡,測試完成之後審核完成就自動的進行切換,本文就來針對這樣得情境進行介紹如何完成這樣的自動化流程。

...繼續閱讀 »

實做壓縮儲存體並下載功能

  • 69
  • 0

前言

工作上剛好遇到需要將儲存體打包並下載的功能,所以整理了一下程式碼並寫成簡單範例。包含了列出儲存體容器內的檔案和打包下載的功能,壓縮的部分則是使用 SharpZipLib 套件來完成。

...繼續閱讀 »

使用 Azure Load Testing 和 Apache JMeter 腳本來進行負載測試

  • 199
  • 0

前言

在微軟公告停止 Azure DevOps 上的負載測試服務之後,在 Azure 上要進行負載測試就得透過第三方服務或是自行架設 VM 來進行測試,終於微軟推出專用的服務 Azure Load Testing,可以讓我們透過定義好的 JMeter 腳本來進行負載測試,本文就來介紹要如何進行設定和測試,以及服務的費用說明。

...繼續閱讀 »

透過 Azure DevOps 自動部署程式到 Private Link 後的 App Service

  • 252
  • 0

微軟在 Azure 上面提供了 Private Link 這一個服務,可以將 Azure 上的 Pass 變成私有的服務,僅能透過 Private Link 才可以連線到,從外部網路是無法直接連線到,如此對於資安有較大要求的情境,就可以設計出僅在特定網路下才可以連線的架構,但是在這樣的架構下也會產生額外的需求,比如說 App Service 的部署,在這個情境下就不能像之前文章「使用 Visual Studio 部署網站到 App Service」的方式直接部署上去,因為這時候是無法從外部網路直接連線到 App Service 的,而解決的辦法最簡單的方式就是建立一台跳板機 VM,設定和 Private Link 同一個虛擬網路,再透過這一台機器進行部署,但是這樣的方式就得在每次要部署時候在連到跳板機器再去部署,還是不夠方便,因此我們可以透過 Azure DevOps 自動化部署,後面文章就來說明實做設定的流程了。

...繼續閱讀 »

Azure DevOps 自動打包和發佈 NuGet 套件到 Artifacts

  • 235
  • 0

身為使用微軟解決方案的開發者,一定都會使用到 NuGet 套件,不管是官方或是非官方的,一定多少都會使用到。然後在實務上一定會有需求會要建立私人的 NuGet 提供庫,比如說公司內部共用的類別庫,這些很多都牽扯到商業邏輯,不可能直接發佈到官方公開的 NuGet 上,這時候就可以使用 Azure DevOps 內的 Artifacts 來管理和提供套件,既然都已經使用到 Azure DevOps 了,那當然也希望可以自動打包並部署到 Artifacts,不然得在每次 commit 之後還得自己執行指令來打包和推送套件上去,這樣太花時間了,本文就針對 .NET Core 來說明如何設定自動化和使用 Artifacts 取得套件。

...繼續閱讀 »

[筆記] 解決 Azure DevOps 專案成員無法新增 Tag 問題

  • 65
  • 0

在使用 Azure DevOps 的 Boards 的時候,我們新增工作項目時候會很常使用到 Tag 功能來針對項目作標記,方便後續呈現和篩選時候使用,按照預設值應該專案成員都會有新增(定義) Tag 的功能,但是針對新進成員設定權限時候,卻發現成員無法新增 Tag,但是可以選擇已有新增的 Tag,本文記錄解決這個問題的筆記,怕之後遇到會再忘記了XD

...繼續閱讀 »

還原誤刪除的 App Service

  • 95
  • 0

實務上偶爾會發生管理資源的時候一不小心就刪除錯資源的慘劇,部分 Azure 服務是可以自助還原的,不需要再開 Ticket 請微軟 Support 協助,比如說儲存體帳戶,針對 Blob 有虛刪除功能,針對儲存體帳戶層級也有還原刪除的儲存體帳戶的功能,而針對今天要討論的主角 App Service,雖然在 Azure Portal 上面並沒有 UI 可以方便視覺化的操作,但是還是可以透過 PowerShell 指令來還原。 

...繼續閱讀 »

Power BI Embedded 實做記錄

  • 624
  • 0

Power BI 是微軟推出的視覺化互動報表服務,可以方便建構出企業做為決策參考用的互動式報表,在使用上要看到報表比較常見的兩種模式,一為直接 Host 在 Power BI 網站的報表,觀看者會取得一個特定的報表網址來察看,另一種模式為網頁內嵌的方式。根據察看對象的不同,可以選擇不一樣的模式來呈現,假設是企業內部要察看報表,可以選擇 Power BI Host 的報表,我們只需要將報表製作完成之後發佈上去即可,而觀看者會需要 Power BI Pro 授權 (發佈為 Public 的話可以不需要授權),如果要做成服務提供給企業內部或是客戶察看報表就會用到今天要介紹的 Power BI Embedded,可以將報表內嵌在網頁內,而 Host 的服務則是使用 Azure。

...繼續閱讀 »

自訂支援 ModelExpression 的 TagHelper

  • 252
  • 0

在 ASP.Net Core 微軟提供了 TagHelper 來更精簡我們在寫 View 的語法,整個使用上會比較清爽,而我們也可以很方便的自訂和擴充,但是在實做擴充上想可以支援 asp-for 卻卡住了,後來找了討論和文章,要支援的化需要使用 ModelExpression,因此針對 ModelExpression 的實做上寫了這篇實做的記錄。 

...繼續閱讀 »

如何取得 Azure 服務 IP 範圍

  • 210
  • 0

在實務上偶而會有需要知道 Azure 上面的服務 IP ,比如說針對地端機器設定防火牆,或是服務和服務間串接,僅開放特定服務可以存取,這時候就會需要取得服務的 IP 範圍,這些 IP 範圍是公開的,微軟有提供不少方式可以取得,本文就整理了一些方式來取得服務的 IP 範圍。

...繼續閱讀 »

透過程式設定 Verizon CDN 節點 IP 到儲存體防火牆

  • 54
  • 0

之前在「Azure CDN from Verizon 實做 signed cookies 驗證」透過 cookies 來驗證 signed 的 token,但是在安全性上還有一個隱藏的問題會導致要保護的檔案會公開在網路上,因為 Verizon 並非 Azure 原生的服務,所以在預設上 Verizon 的 CDN 節點是會被儲存體的安全性擋住的,所以為了 CDN 會需要設定儲存體是允許匿名的,雖然檔案基本上是透過 CDN 並且有 signed cookies 來做保護,但是如果儲存體的位置被知道,還是會被直接的存取,這樣也留了一個安全性的漏洞,這次要針對這個問題透過程式來取得 Verizon 的節點 IP 並且設定到儲存體的允許清單內。

...繼續閱讀 »

如何使用 ASP.Net Core 在 App Service 記錄應用程式記錄

  • 463
  • 0

ASP.Net Core 內建 ILogger 介面方便我們可以實做或串接各種 Log 的套件,而當我們把程式部署到 App Service 但是又不想或不需要把 Log 記錄到 Application Insight,只是想比較單純的用文字檔來收集 Log 就好,本文就針對這樣的情境透過簡單的設定和程式碼就可以把 Log 記錄到我們指定的儲存體內。

...繼續閱讀 »