上個月我花了許多時間在幫一家知名企業導入 Azure DevOps Services 服務,過程中遇到了一些關於 Azure Container Registry (ACR) 的授權問題,因為企業要求「最小權限原則」的關係,很多時候並不能用 UI 介面上的「預設值」來設定,尤其是要盡可能使用 Azure IAM 授權這件事,就很考驗使用者對 Entra ID ( Azure AD ) 的理解。今天這篇文章我就來分享幾個在 Azure DevOps Service 建立 Docker Registry 的 Service Connection 並成功推送 Image 到 Azure Container Registry (ACR) 的經驗。
... 繼續閱讀 ...
我們在建置 .NET 專案時,有許多可自訂的建置操作是由 MSBuild 的屬性(Properties)所控制的。重要的是要知道如何以及在哪裡設定屬性值,以達到期望的效果。一般來說,你可以在執行 msbuild.exe
命令列工具的時候指定屬性值,也可以在專案檔(*.csproj
)中加入屬性設定,也可以在專案目錄中加入 Directory.Build.props
屬性定義檔。今天這篇文章,我就打算來介紹這個 Directory.Build.props
檔案的用法,以簡化我們方案中各專案的設定。
... 繼續閱讀 ...
我們最近有個 Angular 專案需要用到多國語系架構,所以重新看了一遍 Angular Internationalization 官方文件,並且實際操作了一遍,這篇文章我就稍微記錄一下這個過程與注意事項。
... 繼續閱讀 ...
前幾天在嘗試將一個 Spring Boot 3 專案部署到 Azure Web App (Linux) 時,一直遇到了 HTTP 404 無法回應的問題,經過了兩三天的嘗試,終於找到解決方法,這篇文章就來記錄一下這個過程。
... 繼續閱讀 ...
我每次需要部署網站到 App Service Plan on Linux 都會遇到各種問題,所以我大部分都會選擇 Windows 平台來部署網站應用程式,因為我對 IIS 非常熟悉,所以遇到問題通常都很容易可以解決。最近我又再次遇到需要部署網站到 App Service Plan on Linux 執行,沒意外的再次發生了意外,所以這次決定不要逃避他,好好的研究一下 App Service Plan on Linux 的運作方式與相關細節。這篇文章我就來分享我的研究整理。
... 繼續閱讀 ...
我們在 Angular 官網的 Version compatibility 頁面可以看到不同版本的 Angular 其實有匹配的 Node.js 版本,太新的 Node.js 不能用,太舊也不能用。不過,我們通常在開發 Angular 一段時間後,多少都會面臨到需要維護不同專案採用不同 Angular 版本的狀況,這時候你就會需要管理多個不同版本的 Node.js 執行環境,這時候就可以考慮使用 NVM 來管理多個不同的 Node.js 版本。
... 繼續閱讀 ...
開發 Webhook 應用程式的時候,最麻煩的地方就是如何讓外部的服務可以連線到你的本機開發環境。除此之外,要讓身邊的手機快速連到你正在開發中的網站,如果能快速建立一個對外公開的連結,且最好是 HTTPS 安全連線的網址,那也會十分方便。今天我要介紹一個微軟官方推出的 Dev Tunnels 服務,它擁有完整的命令列工具,同時也內建於 Visual Studio Code 與 Visual Studio 2022 之中,不但此服務完全免費,還十分容易上手,我們就馬上來看看怎樣使用吧!
... 繼續閱讀 ...
我有個客戶的網站最近剛上線,在設定 CSP (Content Security Policy) 標頭的時候,因為我設定了 unsafe-inline
的關係,所以導致 Google Analytics (GA) 的程式無法執行,但 GA 網站提供的程式碼就是用 Inline Script (內嵌腳本) 怎麼辦呢?這篇文章我就來告訴你解決方案。
... 繼續閱讀 ...
我最近寫了一個小程式,幫助我自動化審核 LINE 社群(OpenChat)的加入申請,由於 LINE 社群並沒有提供 API 可以串接,而我的審核數量又非常大,因此我就想到了透過 OCR 辨識的方式來進行自動化。不過找了幾個免費的 OCR 套件,都沒有辦法很可靠的識別截圖中的文字,直到我嘗試了 Azure AI Vision 服務才眼睛為之一亮,這套產品的 Image analysis 功能品質極高,費用也極低,實際開發出東西後,我覺得這個服務真的非常值得推薦給大家。這篇文章我就帶大家用 .NET 8 簡單上手這個好用的雲端服務!
... 繼續閱讀 ...