The Will Will Web

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

如何將 Next.js 製作的網站以 Node.js 的方式部署到 Azure Web App

要將 Node.js 網站部署到 Azure Web App (Windows) 其實有點竅門,一般不熟悉 Windows / IIS 的開發人員要想把手邊的 Node.js 部署到 Azure Web App 通常都會卡關卡好久。這篇文章我就來說說我是如何將我最近翻譯的提示工程指南網站部署到 Azure Web App 的,而這是一個用 Next.js 開發的網站!

... 繼續閱讀 ...

如何讓 Node.js 應用程式在 GitHub Action 大幅提昇 CI/CD 執行效率

我手邊有個 Next.js 的應用程式,在設定 GitHub Action 的 CI/CD 自動部署到 Azure Web App 的過程,在 CI 的 actions/upload-artifact@v2 這個步驟花費了超級大量的時間上傳 node_modules 資料夾中的檔案,實在是太沒效率了。因此我改在上傳前壓縮整個目錄,結果整體 CI/CD 的時間直接從 26m 34s 降到 8m 58s 之多,部署效率大幅提升。今天這篇文章我就來說說我的寫法。

... 繼續閱讀 ...

如何批次匯出 Azure DNS 的區域檔(Zone)並移轉到 Cloudflare DNS 託管

上周把幾個掛在 Azure DNS 上面的 Zone 區域檔移轉到 Cloudflare DNS 託管,由於我的 Zone 檔有 81 筆記錄,一個一個搬實在太慢了,所以用一些技巧來快速移轉,這篇文章我就來分享我的作法。

... 繼續閱讀 ...

ASP.NET 部署到 Azure App Service 如何使用 Log stream 查看應用程式紀錄

當 Web 應用程式上傳到 Azure App Service 之後,開發人員第一個要面對的問題,就是要怎樣偵錯(Debug)?在本機開發應用程式通常開發工具都會幫我們整理好各種資訊,但是上到雲端環境後,很多人就會顯得手忙腳亂,有時候說是「瞎子摸象」也不為過,非常痛苦。這篇文章我打算帶大家入門,教大家怎樣用免費又簡單的方式使用 Log stream (記錄資料流) 查看應用程式執行紀錄!

... 繼續閱讀 ...

如何正確地替 Azure Active Directory 使用者啟用多因素驗證 (MFA)

我們上周有同事帳號被駭客入侵,在 30 分鐘內被建立了上百台虛擬機器(VM),還好他有設定消費限制,所以他的訂用帳戶(Subscription)一下子就被停用了,然而我到了隔天深夜才收到訂用帳戶停用的通知,如果沒設定消費限制的話,那真的就慘了!同事覺得納悶的點是,他明明有設定多因素驗證 (MFA) (Multi-Factor Authentication) 驗證方法(Authentication methods),怎麼駭客還可以從烏茲別克(Uzbekistan)用他的帳號密碼登入 Azure Portal 呢?這篇文章我就來說說我這兩天對 Microsoft 365 / Azure AD 在 MFA 的研究心得,超重要!🔥

... 繼續閱讀 ...

將現有 Azure App Service 網站加上 Cloudflare CDN 的注意事項

最近把我的部落格改用 Cloudflare CDN 來當作網站前級,但是在設定的過程中遭遇了一些地雷。由於我的網站是放在 Azure App Service 上面,原本的設定都相當安全,像是 HTTP to HTTPS 的設定,還有一些 URL Rewrite 的設定,多年來都相安無事,但上到 Cloudflare 的時候網站就掛掉了。這篇文章我就來說說我的研究心得!

... 繼續閱讀 ...

你必須瞭解 Azure Functions 內建的執行記錄如何對成本帶來衝擊

當你在建立 Function App 時也同時啟用了 Application Insights 的話,預設會啟用內建的記錄機制(built-in logging),並且會把記錄儲存在 Azure Storage 儲存體帳戶的 Table 中。我們有個 Azure Function (v1) 應用程式,至今穩定運作了 4 年,但最近發現就算沒有什麼流量,儲存體的費用也很高。因為我們的網站最近已經沒有什麼流量,怎麼還會花這麼多錢呢?我分析了一下,發現光是 Table Storage 就佔用儲存體有 113 GiB 之多這才驚覺,原來是 Function App 搞的鬼,他們把所有監控的數據都自動儲存到指定的 Azure Storage 儲存體帳戶之中了!今天我就來說明如何有效率的刪除這些過時的紀錄,避免不必要的資源耗用。

... 繼續閱讀 ...

如何透過 AzCopy (v10) 批次刪除 Azure Storage Blob 上面的檔案

剛在整理 Azure Storage Blob 上面的備份檔案,發現有一千多個檔案已經太舊了,我原本想要批次刪除這些檔案,結果發現 AzCopy 不支援萬用字元(*)語法,上網找了一下解法,大多都說沒辦法。今天我就來分享這個非常方便的小技巧。

... 繼續閱讀 ...

認識 Azure App Service 對外網路連線的 SNAT 限制

最近我們有個在 Azure App Service on Linux 的 Function App 站台出現了一些連線問題,主要問題並不是斷線,而是不時會出現 Timeout 問題,但這些問題我們在本機開發時都不會遇到,是部署到 Azure 之後才遇到的問題。我花了好幾天才真正釐清問題的潛在原因,這篇文章我就來說明這個特殊的狀況。

... 繼續閱讀 ...