有些事情看起來很複雜,但想通了就會很簡單;不理解的時候很抽象,理解的時候就很直覺。最近在幫客戶搬遷 Azure Storage 儲存體帳戶,照理說透過 AzCopy 應該要非常簡單才是,但是偏偏就是這個客戶的訂用帳戶的儲存體帳戶無法複製檔案過去,而且錯誤訊息相當難以理解,搞了很久才釐清真相。
... 繼續閱讀 ...
最近幫客戶導入 Azure Front Door 負載平衡器與 WAF 服務,在進行一連串的測試之後,發現想刪除測試用的 Front Door 服務卻無法刪除。原因是 Azure Front Door 當有設定 自訂域名 (Custom Domain) 的時候,預設會需要事先設定自訂域名的 DNS CNAME
紀錄,然而在刪除 Front Door 資源的時候,卻需要先刪除該 CNAME
紀錄才能刪除該資源,有點不太方便。因為 DNS 註冊在客戶端,且申請刪除 CNAME
紀錄需要好幾天時間,所以便研究了一下如何在不解除 CNAME
記錄的情況下刪除 Azure Front Door 資源。
... 繼續閱讀 ...
最近加入到一個客戶的 Azure 訂用帳戶設定 CI/CD,在做這件事情之前,當然是先建立好 Service Principal (服務主體),然後才進行角色指派,讓該服務主體擁有必要的權限才能進行部署。不過建立完成後才發現,我忘記將 Storage account (儲存體帳號) 的 Storage Blob Data Contributor
角色指派給我建立好的 Service Principal (服務主體),以致於我無法透過 AzCopy 複製檔案進 Blob 容器中。最悲劇的地方,就是我的 Guest 身份竟然無法讀取 Service Principal (服務主體) 的任何資訊,導致我無法順利指派角色,這篇文章我就來說說我的最終解法!
... 繼續閱讀 ...
當你在 Azure 使用 App Service 部署網站時,預設的時區是設定在 UTC 時間,當你的網站不需要處理跨時區的問題時,最簡單的解法,當然就是調整系統設定,讓你的程式可以直接讀取到台灣時區的時間 (UTC+8),原本我們都設定的好好的,但上周突然決定要改用以 Linux 為主的 App Service Plan,這才發現時區設定失效了,查詢後才發現原來設定不同!這篇文章我將說明如何正確的調整 App Service 的時區設定。
... 繼續閱讀 ...
在 Azure 所有 使用者 (User) 與 服務 (Service) 都代表著一個 主體 (Principal),而 Azure 的 RBAC (以角色為主的存取控制) 主要就是針對 主體 (Principal) 來進行角色指派 (授權),因此我們可以對 使用者主體 (User Principal) 或 服務主體 (Service Principal) 設定在不同資源所擁有的角色。本篇文章我打算來分享幾個方法,教你如何在特定 訂用帳戶 (Subscription) 下查出有哪些主體被設定了哪些角色,以及特定主體已經被授權到了哪些訂用帳戶、哪些資源的哪些角色,藉此用來盤點是否有不當授權的狀況。
... 繼續閱讀 ...
我經常需要在 Azure 手動建立許多測試站台,雖然說設定上並沒有很複雜,但是時間一久,累積出將近百來個 Web App 也是蠻難維護的,而且 組態漂移 (Configuration Drift) 的問題也會日趨嚴重,久而久之就不知道服務到底是怎樣設定出來的了。近幾年很夯的 GitOps 觀念興起,讓你可以使用 Git 管理基礎架構的所有設定,用應用程式開發的流程來管理維運的基礎架構,提升基礎架構的可維護性。本篇文章我就簡介一下 Azure 專用的 Bicep 語言,教你如何利用 Bicep 實現 Azure 雲端平台的 GitOps 架構。
... 繼續閱讀 ...
我昨天在 Kubernetes Summit 2021 舉行了一場實戰工作坊,詳細的介紹 Dapr 這套工具如何部署到 Kubernetes,以及如何透過 Dapr 大幅降低導入微服務架構的複雜度。今天這篇文章我打算以 Azure Kubernetes Services (AKS) 為例,將我昨天的實戰工作坊完整實作一遍。
... 繼續閱讀 ...
要在 Azure 實現即時連線式的無伺服器架構(Serverless architecture)其實相當容易,只要學會 Azure Functions 的開發方式,搭配著 Azure SignalR Service 就可以輕鬆實現,本篇文章我將說明實現這個架構的相關說明與注意事項。
... 繼續閱讀 ...
在用 .NET Core 3.1 開發 Azure Functions 的時候一直以來有個困擾,那就是每次改完程式都要回到 Terminal 中斷程式執行,並且重新啟動,沒有像其他應用程式那樣可以用 dotnet watch run
自動監視檔案變更就自動重啟應用程式。雖然這個功能沒有內建在 func start
命令中,但是我卻發現 .NET CLI 竟然有個 dotnet watch msbuild
可以用,雖然陽春了點,但其實也是還是可以滿足需求! 👍
... 繼續閱讀 ...