在 Azure 中,Log Analytics Workspace 是屬於 monitor 指令集的一部分。要建立它,你需要使用 az monitor log-analytics workspace create。
以下是完整的建立步驟與語法:
1. 建立 Log Analytics Workspace
你可以直接執行以下指令來建立一個新的工作區:
PowerShell
az monitor log-analytics workspace create `
--resource-group $RESOURCE_GROUP `
--workspace-name $WORKSPACE_NAME `
--location $LOCATION
2. 為什麼需要它?
在建立 Container App Environment (CAE) 時,工作區就像是一個「大型儲存桶」,負責接收並儲存容器產生的所有日誌(Logs)和指標(Metrics)。
3. 自動化整合腳本 (從建立到取得 ID/Key)
為了讓你後續建立 Container App Environment 順利,建議依照這個流程操作:
PowerShell
# 設定 Workspace 名稱 (自定義)
$WORKSPACE_NAME = "log-pr-prod-twn-01"
# Step A: 建立 Workspace
az monitor log-analytics workspace create `
--resource-group $RESOURCE_GROUP `
--workspace-name $WORKSPACE_NAME `
--location $LOCATION
# Step B: 取得該 Workspace 的 ID
$WORKSPACE_ID = az monitor log-analytics workspace show `
--resource-group $RESOURCE_GROUP `
--workspace-name $WORKSPACE_NAME `
--query id --output tsv
# Step C: 取得該 Workspace 的 Key
$WORKSPACE_KEY = az monitor log-analytics workspace get-shared-keys `
--resource-group $RESOURCE_GROUP `
--workspace-name $WORKSPACE_NAME `
--query primarySharedKey --output tsv
# Step D: 現在你可以成功建立 Container App Env 了!
az containerapp env create `
--name $CONTAINERAPP_ENVIRONMENT `
--resource-group $RESOURCE_GROUP `
--location $LOCATION `
--logs-workspace-id $WORKSPACE_ID `
--logs-workspace-key $WORKSPACE_KEY
💡 小提醒
- 定價層 (Pricing Tier):預設建立的會是
PerGB2018,這是目前的標準定價模式,按量計費。 - 保留天數:預設通常會保留 30 天的日誌,如果需要更長,可以在建立後調整。
- 資源群組:請確保
$RESOURCE_GROUP已經先建立好了(az group create),否則指令會報錯。
你現在的 $RESOURCE_GROUP 和 $LOCATION 變數都已經設定好了嗎?(例如 $LOCATION = "eastasia")
關於 Azure Log Analytics Workspace 的計費,這是一個「進來要錢、留著要錢、查一般不用錢」的邏輯。
以下是針對 2026 年最新計費模式的詳細拆解:
1. 實際會被收多少? (按量計費)
基本的「隨用隨付 (Pay-As-You-Go)」主要由兩個部分組成:
- 資料擷取 (Ingestion): 每 GB 約為 $2.30 USD。
- 註:每個月通常有前 5 GB 的免費額度。
- 資料保留 (Retention): * 前 31 天免費。
- 超過 31 天後,每 GB 每月約收 $0.10 USD。
- 如果你是為了法規需要存好幾年(長效保留),價格會降到每 GB 約 $0.02 USD。
簡單試算:
如果你每天產生 1 GB 的日誌,一個月 30 GB。
(30GB – 5GB 免費) × $2.30 = $57.5 USD / 月 (約台幣 $1,800)。
2. 分析(查詢)需要錢嗎?
這取決於你使用的「資料層次 (Tier)」:
- Analytics Logs (預設): 查詢完全免費。你可以無限次執行 KQL 查詢來產出圖表。
- Basic Logs (基本日誌): 這種層次擷取很便宜(約 $0.50/GB),但查詢要錢,每掃描 1 GB 資料約收 $0.005 USD。適合存那些「平常不看,出事才查」的資料。
- Search Job (搜尋作業): 如果要在海量歷史資料中搜尋,會按掃描量計費。
3. 定價層 (Pricing Tiers)
除了按量計費,如果你資料量很大,可以使用「承諾層級 (Commitment Tiers)」來打折:
| 層級 | 每日資料量 | 折扣幅度 (預估) |
| 隨用隨付 | 無限制 | 無折扣 |
| 100 GB/日 | 固定收 100 GB 的錢 | 約打 85 折 |
| 200 GB/日 | 固定收 200 GB 的錢 | 約打 8 折 |
| 500 GB/日 | 固定收 500 GB 的錢 | 約打 7 折 |
4. 有 EPS (每秒事件數) 上限嗎?
Azure Log Analytics 沒有嚴格的 EPS 硬性上限,它是彈性擴張的,但有以下限流 (Throttling) 規則:
- 資料擷取速度: 單一個 Workspace 通常支援到 6 GB/分鐘 的擷取速度。如果超過,可能會遇到延遲,但資料不會遺失(會排隊)。
- API 調用限制: 如果你是透過 API 狂發日誌,每分鐘約有 200 次請求的限制。
- 查詢限制: 為了防止惡意查詢榨乾資源,單一查詢最多跑 10 分鐘,且回傳結果上限為 30,000 列。
💡 專業建議:如何省錢?
- 過濾掉沒用的日誌: 在
az containerapp設定中,只傳送「錯誤 (Error)」或「重要 (Warning)」等級的日誌到 Workspace。 - 善用 Basic Tier: 對於開發環境或測試環境的日誌,可以設定為
Basic模式來節省 75% 的擷取成本。 - 設定預算上限 (Daily Cap): 你可以設定 Workspace 每天最多只能收多少 GB(例如 5GB),避免因為程式 Bug 產生無窮迴圈 Log 導致帳單爆炸。
你目前預計每天產生的日誌量大約是多少?如果量很大,我可以直接幫你算承諾層級的划算程度。
台灣資案法規, log 可以放其他國家嗎?
這是一個非常關鍵的合規性問題。在台灣,Log(日誌)是否可以存放於境外,取決於你的產業屬性、公司身分以及 Log 內是否包含個人資料(PII)。
依照 2026 年最新的法規趨勢與《資通安全管理法》,我為你整理如下:
1. 公務機關與關鍵資訊基礎設施 (CII)
如果你屬於政府單位、公務機關,或受託開發的廠商:
- 原則:禁止。 根據資安署規定,公務機關雲端資料(含備份、備援、日誌)的實體所在地不得位於大陸地區(含港澳)。
- 落地要求: 對於高等級資安系統,通常要求資料儲存與處理需在本國境內。即使使用雲端,也傾向於選擇有「台灣資料中心」的服務(如 Azure 台灣區域)。
2. 特殊監管產業 (如金融、醫療)
- 金融業: 受金管會高度監管。雖然目前法規已放寬雲端委外,但如果 Log 涉及客戶交易明細或個人敏感資料,通常需要報備,且必須確保受監管單位(金管會)能隨時進行實地稽核。
- 醫療業: 根據最新的電子病歷及相關法規,涉及病患隱私的資料與 Log 通常要求存放於境內。
3. 一般民間企業 (受《個資法》規範)
如果你是一般民間企業,Log 是否出境主要看 《個人資料保護法》第 21 條:
- 可以出境,但有條件: 除非主管機關(如經濟部、數發部)針對特定產業發布禁止令(例如過去曾禁止電商將個資傳往大陸),否則原則上可以國際傳輸。
- 保護措施: 你必須確保接收資料的國家對個資有完善保護,且必須在隱私政策中告知用戶。
4. 實務建議:Log 存放於 Azure 的策略
既然你在使用 Azure,建議採取以下三種策略來規避法律風險:
方案 A:使用 Azure 台灣區域 (Taiwan North)
Azure 已經在台灣(桃園/板橋一帶)設立資料中心。
- 做法: 建立 Log Analytics Workspace 時,將
Location設定為Taiwan North。 - 優點: 滿足最嚴苛的「資料落地」要求,且網路延遲最低。
方案 B:資料去識別化 (Data Masking)
如果你的應用程式 Log 包含使用者的 IP、Email、手機號碼,這些都屬於個資。
- 做法: 在將 Log 送往 Log Analytics 之前,在應用程式端進行加密(Hash)或遮罩處理。
- 優點: 脫敏後的 Log 就不再屬於《個資法》定義的個人資料,存放於新加坡(Southeast Asia)或美國通常沒有合規問題。
方案 C:分層儲存
- 做法: * 一般日誌: 放境外(便宜)。
- 稽核日誌 (Audit Logs): 包含敏感操作或個資,強制放在台灣境內或地端。
總結檢查清單
| 情況 | 是否可放境外 (如新加坡/美國)? | 備註 |
| 公務機關 / 關鍵基設 | 否 | 必須在本國境內。 |
| 涉及個資的 Log | 需評估 | 需符合個資法國際傳輸規定。 |
| 純系統/效能 Log | 是 | 通常無法律限制。 |
| 中國地區 (含港澳) | 絕對禁止 | 台灣資安法明確排斥。 |
提示: 雖然 Azure
East Asia指的是香港,但根據台灣目前的資安政策,高度建議不要將涉及個資或資安的 Log 放在香港,建議優先選擇Taiwan North。
你的應用程式是否會處理到身分證字號、信用卡號等敏感資料並印在 Log 裡呢?

az containerapp env create `
>> --name $CONTAINERAPP_ENVIRONMENT `
>> --resource-group $RESOURCE_GROUP `
>> --location $LOCATION `
>> --logs-workspace-id $WORKSPACE_ID `
>> --logs-workspace-key $WORKSPACE_KEY
You cannot create a Containerapp environment in location taiwannorth. List of eligible locations: westus2, southeastasia, swedencentral, canadacentral, westeurope, northeurope, eastus, eastus2, eastasia, australiaeast, germanywestcentral, japaneast, uksouth, westus, centralus, northcentralus, southcentralus, koreacentral, brazilsouth, westus3, francecentral, southafricanorth, norwayeast, switzerlandnorth, uaenorth, canadaeast, westcentralus, ukwest, centralindia, japanwest, australiasoutheast, francesouth, spaincentral, italynorth, polandcentral, southindia.
看起來你撞到了 Azure 區域功能的硬傷。雖然 Taiwan North (台灣北部) 已經上線,但並非所有服務(特別是 Container Apps 這種比較新的託管服務)都會在第一時間支援該區域。
根據錯誤訊息,Taiwan North 目前還不支援 Container Apps Environment。
1. 解決方案:更換區域
既然 Log 法律合規性是你考量的重點,且台灣暫時不可用,建議改用 Singapore (southeastasia)。
- 優點: 離台灣最近,延遲低,且非中國地區,符合多數民間企業的資安規範。
- 注意: 如果你改了區域,Log Analytics Workspace 也必須重新建立在同一個區域,否則會報錯或產生跨區域流量費用。
2. 修正後的執行腳本
請依序執行以下步驟(我們把 Location 硬切到 southeastasia):
PowerShell
# 1. 更新區域變數
$LOCATION = "southeastasia"
# 2. 重新建立或更新 Workspace (要在同一個區域)
az monitor log-analytics workspace create `
--resource-group $RESOURCE_GROUP `
--workspace-name $WORKSPACE_NAME `
--location $LOCATION
# 3. 重新抓取 ID 和 Key (確保是新的)
$WORKSPACE_ID = az monitor log-analytics workspace show --resource-group $RESOURCE_GROUP --workspace-name $WORKSPACE_NAME --query id -o tsv
$WORKSPACE_KEY = az monitor log-analytics workspace get-shared-keys --resource-group $RESOURCE_GROUP --workspace-name $WORKSPACE_NAME --query primarySharedKey -o tsv
# 4. 再次嘗試建立 Container App Environment
az containerapp env create `
--name $CONTAINERAPP_ENVIRONMENT `
--resource-group $RESOURCE_GROUP `
--location $LOCATION `
--logs-workspace-id $WORKSPACE_ID `
--logs-workspace-key $WORKSPACE_KEY
3. 關於法規的應對 (當 Location 為新加坡時)
如果你的公司必須遵守「資料落地台灣」,而技術上又必須使用 Container Apps,目前有兩種彈性做法:
- 混合雲模式: 把運算放在
southeastasia,但資料庫(SQL/Storage)放在taiwannorth。Log 則透過 Diagnostic Settings 同步一份備份回台灣境內的 Storage Account。 - 等待期: 依照 2026 年的進度,台灣區域的服務正在陸續補齊。你可以先在新加坡開發,等
taiwannorth支援 Container Apps 後再進行區域轉移(Region Move)。
4. 如何檢查該區域支援哪些服務?
如果你想確認某個區域到底能不能用,可以執行:
PowerShell
az provider show -n Microsoft.App --query "resourceTypes[?resourceType=='managedEnvironments'].locations" -o json
這會直接噴出目前全球支援 Container App Environment 的所有清單,你可以看到 taiwannorth 是否在裡面。
