Microsoft AZ-204: Azure Storage 和 Blob Storage — 學習指南
屬於 Microsoft Azure Developer Associate AZ-204 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
Azure Storage 為非結構化與結構化資料提供耐用、可大規模擴展的雲端儲存空間。對於應用程式開發,重點在於選擇正確的儲存體帳戶類型、設定備援以滿足 RTO/RPO 目標、選擇適合的 blob 類型與存取層以兼顧成本與效能,以及使用 Azure AD 與 SAS 保護存取安全。使用生命週期原則來自動化跨層級的資料移動,在適當時機直接從 Blob 儲存體提供靜態網站服務,並在需要檔案語意或基於訊息的解耦時應用 Azure Files 與 Queue Storage。
儲存體帳戶類型與備援基礎
General-purpose v2 (GPv2) 是大多數工作負載的標準帳戶類型。它支援 blob、檔案、佇列與表格、所有存取層、生命週期管理以及最新的功能。舊版的 BlobStorage 帳戶僅公開 Blob 服務與分層功能,但缺乏 GPv2 所擁有的廣泛功能與成本最佳化;新的部署應優先選擇 GPv2。FileStorage 帳戶是專為 Azure Files 設計的 premium、SSD-backed 帳戶,為企業檔案工作負載(例如,設定檔共用、企業營運應用程式)提供一致、低延遲的 IOPS 與輸送量。當您需要 SMB/NFS 共用具備 premium 效能時,請選擇 FileStorage;否則,GPv2 是預設選項。
備援選項決定了資料在不同故障網域中的耐用性與可用性:
- LRS (Locally Redundant Storage) 在單一資料中心內同步儲存三個複本。成本最低,不提供區域或地區性保護。適用於開發/測試、暫時性工作負載,或當您有更高層級的複寫時使用。
- ZRS (Zone-Redundant Storage) 在一個地區內跨可用性區域同步複寫,保護免於區域性中斷,具備高可用性且 RPO 為零。適用於需要在地區內具備彈性的區域性地區中的生產環境。
- GRS (Geo-Redundant Storage) 在主要地區儲存三個同步複本(類似 LRS),並非同步複寫到次要的配對地區(該處為 LRS)。典型的 RPO 小於 15 分鐘;次要地區預設不可讀取。當您不需要讀取存取權時,可選擇此選項進行災難復原。
- RA-GRS (Read-Access Geo-Redundant Storage) 透過 -secondary 端點為次要地區新增讀取存取權。當您在主要地區發生事件時需要跨地區災難容錯與處理唯讀工作負載,或在可接受最終一致性的情況下進行地理鄰近性讀取時使用。
當您同時需要區域性故障保護與跨地區災難復原 (DR) 時,請考慮在解決方案層級將本地的 ZRS 與額外的異地備援帳戶模式配對。規劃帳戶容錯移轉測試、了解 DNS 端點的切換,並驗證應用程式的重試原則,以處理異地事件期間的最終一致性與時鐘誤差。
Blob 資料模型、層級與生命週期管理
Blob 有三種類型,各有不同的語意。Block blob 為大型物件(如圖片、影片與備份)的串流與隨機讀取進行了最佳化。上傳時會被分塊並提交,可實現平行上傳與高效重試。Append blob 為僅限附加的工作負載(如遙測與日誌擷取)進行了最佳化;只允許附加操作,這簡化了並行處理。Page blob 提供 512 位元組對齊的分頁,用於隨機讀寫 I/O,並支援 Azure VM 磁碟所使用的 Azure 虛擬硬碟 (VHD);它們是 IaaS 磁碟與大型隨機 I/O 工作負載唯一支援的 blob 類型。
Blob 存取層控制成本與效能。Hot 層為頻繁存取最佳化,讀寫延遲最低,但儲存成本最高。Cool 層針對至少保留 30 天的不常存取資料,儲存成本較低,但交易/讀取成本與最低保留費用較高。Archive 層是用於長期保留的最低成本層級;物件處於離線狀態,讀取前必須先重新整理至 Hot 或 Cool 層。重新整理可要求標準或高優先權,以成本換取速度。您可以在帳戶層級設定預設存取層(Hot 或 Cool),並可針對每個 blob 覆寫;Archive 層只能針對每個 blob 設定。
生命週期管理原則可自動化資料移動與保留,以控制成本並滿足治理要求。在帳戶層級,定義以下規則:
- 在上次修改後 N 天,將 blob 或 blob 版本/快照轉換至 Cool 或 Archive 層
- 在達到年齡閾值後刪除 blob、快照或版本
- 依容器前置詞與 blob 索引標籤篩選,以鎖定特定資料集(例如,標記 env=prod 與 policy=retention-7y) 將生命週期規則與版本設定和虛刪除結合,以防止意外刪除,同時仍強制執行保留策略。請記住,Archive 層有最低保留期與提早刪除費用;設計原則時應盡量減少不必要的重新整理。
若要進行變更追蹤與下游處理,請啟用儲存體帳戶變更摘要,以取用一個有序、不可變的 blob 建立、更新、刪除與複製操作日誌。這支援合規性以及需要 exactly-once 或 at-least-once 語意與檢查點的非同步處理器。
Blob 儲存體中的靜態網站裝載會公開一個特殊的 $web 容器,透過專用的 Web 端點提供服務。設定索引與錯誤文件,並直接發布靜態資產。靜態網站端點提供對網站內容的匿名讀取存取,這與 blob 的公用存取設定無關;透過 blob 端點的存取可以保持停用。若要使用自訂網域與全球加速,請在端點前加上 Azure Front Door 或 Azure CDN。靜態網站端點不支援私人端點;在需要私密存取的地方,使用邊緣服務來保護與加速傳遞。
安全性、身分識別與受控的資料存取
Azure Storage 預設會使用 Microsoft 管理的金鑰,透過 256 位元 AES 加密靜態資料。若要進行更嚴格的控制,請啟用儲存在 Azure Key Vault 或受控 HSM (Managed HSM) 中的客戶管理金鑰 (CMK),以管理金鑰輪替和職責分離;並授予儲存體帳戶的受控識別包裝/解除包裝權限。對於高度受監管的工作負載,請啟用基礎結構加密以應用第二層獨立的加密層。如果需要端對端的加密控制,請將伺服器端加密與用戶端加密搭配使用。
Azure AD 授權將資料平面與 Blob 和 Queue 服務以及 Files REST API 的 RBAC 整合在一起。將最小權限角色 (例如 Storage Blob 資料讀取者或 Storage Blob 資料參與者) 授予受控識別、使用者或群組。在程式碼中,使用 DefaultAzureCredential 來取得 OAuth 2.0 權杖,並避免嵌入金鑰。對於 Azure Files 的 SMB 存取,請使用 Active Directory 啟用以身分識別為基礎的驗證:將儲存體帳戶加入內部部署 AD DS (透過 Azure AD Kerberos 用於混合式身分識別) 或 Azure AD DS,並使用 NTFS ACL 和 RBAC (例如 Storage File Data SMB Share Contributor) 進行共用層級的授權。確保使用 SMB 3.x 並進行傳輸中加密,並考慮使用私人端點 (Private Endpoints)、VPN 或 ExpressRoute 來穿越封鎖 445 連接埠的網路。
共用存取簽章 (SAS) 可在不洩漏帳戶金鑰的情況下,委派具範圍限制、有時間限制的存取權限。服務 SAS (Service SAS) 授予對特定服務和資源 (例如,單一 blob 或容器) 的存取權限,並具有精確的權限和開始/到期時間。帳戶 SAS (Account SAS) 在帳戶層級運作,範圍涵蓋多個服務 (blob、檔案、佇列、資料表) 和服務 API,例如清單或建立。使用者委派 SAS (User delegation SAS) 特定於 Blob 儲存體,並使用透過 Azure AD 為具有適當 RBAC 的主體取得的使用者委派金鑰進行簽署;它移除了對金鑰的相依性,並將存取控制集中在 Azure AD 中。應用限制條件,包括 IP 範圍、允許的通訊協定 (僅限 HTTPS) 和短暫的生命週期。預存存取原則 (Stored access policies) 可集中管理 SAS 的限制條件,並透過更新或刪除原則來啟用撤銷;它們適用於服務 SAS 和帳戶 SAS。使用者委派 SAS 不使用預存存取原則;透過讓使用者委派金鑰到期或移除 Azure AD 角色指派來進行撤銷。應一律優先選擇使用 SAS 而非帳戶金鑰,並且當您的應用程式可以取得 Azure AD 權杖時,優先選擇使用使用者委派 SAS。
Azure Files 與 Queue Storage 基礎知識
Azure Files 提供全受控的 SMB 檔案共用,並為 POSIX 情境提供 NFS 選項。SMB 共用適用於直接遷移 (lift-and-shift) 和應用程式相容性。Premium FileStorage 帳戶提供可預測的低延遲效能,而標準共用則對一般用途的檔案資料來說相當經濟實惠。您可以透過 SMB 用戶端或 REST API/SDK 來管理共用和檔案。Azure File Sync 透過在 Windows Server 上快取雲端共用來實現混合式檔案服務,提供本地效能、將冷資料分層至雲端、多站點同步,以及無需傳統 NAS 更新週期的備份/異地 DR。結合以 Azure AD 為基礎的身分識別與 NTFS ACLs 來強制執行最低權限原則,並使用 Private Endpoints 來控制資料外洩的風險。
Azure Queue Storage 可實現解耦且具備彈性的應用程式工作流程。每則訊息最大可達 64 KB(較大的承載應參考 Blob URI)。訊息的存留時間 (TTL) 決定了其自動到期的時間;您可以指定一個從幾秒到七天之間的正值,或設為 -1 表示永不過期。當一個工作者擷取訊息時,該訊息在其可見度逾時期間會變為不可見。如果處理失敗且訊息在逾時前未被刪除,它會重新出現以供其他消費者處理。請調整可見度逾時,使其超過最壞情況下的處理時間,並使用冪等處理常式 (idempotent handlers) 加上指數退避 (exponential backoff) 來減少競爭。追蹤取出次數 (dequeue count) 以偵測無效訊息 (poison message);當次數超過閾值時,將訊息移至專用的無效訊息佇列進行隔離和分析。Azure Functions 的佇列觸發程序會自動透過一個 -poison 佇列來實作此模式。若有更高輸送量或需要排序保證的 FIFO 需求,請考慮使用 Service Bus 佇列;否則,Azure Queue Storage 是一個輕量級且符合成本效益的選擇。
實務問題情境
國家地理雜誌必須發布一個高流量的攝影微型網站,此網站需具備無伺服器影像處理、成本最佳化的儲存,以及為內部部署的編輯工具提供混合式存取。他們還需要為合作夥伴機構提供安全的、有時效性的共用連結,並為背景處理提供穩健的訊息處理機制。
- 建立一個具備 RA-GRS 的 GPv2 儲存體帳戶
- 原因:GPv2 啟用 Blob、Files 和 Queue 服務,並提供生命週期和分層功能。RA-GRS 提供跨區域的災難容錯能力,並在發生區域性事件時,提供對次要端點的讀取存取,以確保以讀取為主的資產的連續性。
- 啟用靜態網站託管功能,並將網站資產部署到 $web 容器
- 原因:Blob 靜態網站免去了管理 Web 伺服器的麻煩,可從 Hot 層提供低延遲的讀取,並能進行全域擴展。後續可搭配 Azure Front Door 以實現自訂網域、WAF 和邊緣快取。
- 將原始 RAW 影像儲存為區塊 Blob;將一次寫入的遙測資料儲存為附加 Blob
- 原因:區塊 Blob 支援大型檔案的平行上傳,並能高效地傳遞為 Web 最佳化的衍生檔案。附加 Blob 簡化了來自處理管線的並行日誌寫入,且不會產生衝突。
- 定義生命週期原則,將原始檔案在 30 天後移至 Cool 層,180 天後移至 Archive 層;並刪除超過一年的版本
- 原因:自動化分層根據存取模式降低儲存成本,同時保留合規性副本。版本和快照的清理可控制儲存空間膨脹,無需手動介入。
- 使用 Azure AD 和使用者委派 SAS 為合作夥伴保護資料存取
- 原因:將 Storage Blob Data Reader 角色指派給共用服務中的受控識別,取得使用者委派金鑰,並產生具備 IP 限制、僅限 HTTPS 且存留期短的 SAS 權杖。這避免了分發帳戶金鑰,並將授權與 Azure AD 綁定。
- 透過 Key Vault 和基礎結構加密啟用客戶管理的金鑰
- 原因:CMK 滿足更嚴格的合規性和金鑰輪替要求,而雙重加密則為敏感媒體提供深度防禦。
- 整合 Azure Queue Storage 進行背景影像處理,並搭配 Azure Functions 佇列觸發程序;設定可見度逾時以超過最大處理時間,並配置無效訊息處理
- 原因:佇列將上傳路徑與運算資源解耦。可見度逾時可防止重複作業,而 Functions 執行階段會自動將失敗的項目路由到
-poison佇列以供調查。
- 透過 Azure Files 發布編輯工具,使用 premium FileStorage 帳戶並透過 Azure File Sync 同步至內部部署的 Windows Server
- 原因:編輯人員可透過 AD 獲得具備 NTFS ACLs 和身分驗證的低延遲 SMB 存取,而 Azure File Sync 提供本地快取和雲端分層。Premium 層確保了互動式工作負載的一致效能。
- 使用 Azure Front Door 作為靜態網站的前端,並啟用快取和自訂 HTTPS
- 原因:邊緣節點 (POP) 可降低全球延遲,自訂網域滿足品牌需求,而 WAF 在不改變儲存後端的情況下增強了安全性。
- 啟用儲存體帳戶變更摘要,並將其封存至合規性儲存區
- 原因:一個不可變且有序的 Blob 變更日誌,可支援下游的分析、稽核,以及為可重現的內容管線進行重播。
← Azure Functions 和無伺服器運算 · 所有領域 · Azure Cosmos DB →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →