The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用 .NET 8.0 與 Azure Functions Core Tools 開發與部署函式應用程式

我一直以來都是 Serverless 架構的信徒,因為實在是不太想自己管伺服器,我從 2018 年就開始採用 Azure Functions 技術,到目前為止歷經了 4 個大版本,到現在終於算是穩定些了。不過即便到目前為止,你要是照著官方文件下去設定,肯定會在很多不同的環節鬼打牆,地雷一直都沒有少過。這篇文章我將介紹如何使用 .NET 8.0Azure Functions Core Tools 來開發函式應用程式,並說明如何部署應用程式到 Azure App Service 使用 Consumption Plan (Y1) 方案來執行!

... 繼續閱讀 ...

如何查詢公司 Microsoft Entra 目錄下有多少已經建立的 Azure DevOps 組織

在 Azure DevOps 中,我們可以透過 Microsoft Entra (以前的 Azure Active Directory) 來管理組織,當你用了 M365 組織帳戶建立的 Azure DevOps 組織,預設就會跟 Microsoft Entra 綁定。如此一來,就可以套用更為完整的組織原則,並提供稽核記錄等等,相當方便。不過,如果你是 Tenant 管理者的話,你可能會想知道你的公司目前有多少個 Azure DevOps 組織,這篇文章教你怎樣查詢這個資訊。

... 繼續閱讀 ...

如何透過 .NET 的 Google.Apis.Auth 套件來取得服務帳戶的 Access Token

為了要能夠呼叫 Google Cloud Platform (GCP) 上的 API 資源,我們通常要透過 OAuth 2.0 的方式來取得存取權杖 (Access Token)。其實 Google 對 .NET 的支援還算完整,只是文件寫的太差,為了要能成功串好這個 OAuth 流程,花了我不少時間,主要是沒辦法找到一個清楚且完整的範例程式。也因為網路上可用的範例程式太少,導致各大 LLM 平台的回答都充滿了幻覺,每個都在胡說八道。這篇文章我就分享「服務帳戶」如何取得 Access Token 的方法,並提供一個完整可用的範例程式。

... 繼續閱讀 ...

如何在 Microsoft Entra 中建立一個 100 年都不會過期的 Client Secret 金鑰

我最近的 Azure 與 Azure DevOps 的顧問案很多,我在很多不同客戶與學員之間被問到一個相同的問題,他們問:「在 Azure 建立 Service Principal (服務主體) 並產生 Client Secret 金鑰時,為什麼到期日最長只能設定 2 年?那不就代表 2 年後如果忘記要手動更新,自動化的服務或 Pipeline 不就會自動停擺了嗎?」這個問題其實有標準答案,就是不要建立 Client Secret 金鑰,而是改用 Managed Identity (MI) 即可。不過,在你還沒學會 MI 之前,我先教你怎樣建立一個 100 年都不會過期的 Client Secret 金鑰!😆

... 繼續閱讀 ...

如何從 Azure Repos 的 Files 快速開啟 vscode.dev 編輯與查找檔案

應該很多人並不知道,其實在 Azure DevOps ServicesAzure Repos 中,長久以來都有一個很方便的功能,那就是可以在 Files 頁籤按下一個 . (小數點) 就可以立刻轉到 vscode.dev 網站,這是一套以雲端為主的 VS Code 編輯器,這樣你就不用將專案下載到本機,讓你可以直接用瀏覽器直接編輯版控中的檔案,還可以對所有檔案進行快速搜尋與取代,享用 VS Code 所有的功能,實在是非常方便。不過,我有好一段時間無法快速從 Azure Repos 順利開啟 vscode.dev 網站了,這篇文章我就來說說這個問題。

... 繼續閱讀 ...

如何將 AzureAD 與 MSOnline 模組改用 Microsoft Graph PowerShell 執行

我之前一直使用 PowerShell 的 MSOnline V1AzureAD V2 模組在做許多 Microsoft 365 的自動化工作,原本微軟就打算在 2023 年 9 月 30 日之前棄用這兩個模組,但因故延期到 2024 年 3 月 30 日,也就是這個月底。在死線之前,我終於騰出時間把我過往的 Microsoft 365 自動化腳本全面升級到 Microsoft Graph PowerShell 模組,這個過程真的不太輕鬆,改變真的蠻大的。

... 繼續閱讀 ...