azure-storage
作者 microsoft面向開發者設計的 skill,協助你在應用程式與工具中使用 Azure Storage 服務(Blob、File Shares、Queues、Tables 和 Data Lake)。內容涵蓋核心概念、SDK 選擇、驗證最佳實務,以及上手用範例程式碼,讓你可以在大規模環境中安全地上傳、下載與管理資料。
概觀
azure-storage skill 能做什麼
azure-storage skill 是針對 Microsoft Azure Storage Services 的專門指南,涵蓋:
- Blob Storage – 物件與檔案儲存,適用於備份、靜態資產與大型資料檔案
- Azure Files (File Shares) – 相容 SMB 的檔案分享,適合 lift-and-shift 工作負載
- Queue Storage – 輕量級非同步訊息與背景工作佇列
- Table Storage – 適合簡單、無綱要資料的 NoSQL key-value 儲存
- Azure Data Lake – 具階層式命名空間的大數據分析儲存
這個 skill 本身不會新增任何 SDK 或 CLI,而是協助你:
- 針對你的情境選擇正確的 Azure Storage service
- 使用(若可用)MCP server tools 來列出 accounts、containers 與 blobs
- 安裝適合的 語言 SDK(Python、JavaScript/Node.js、Java、.NET、Go、Rust)
- 遵循驗證最佳實務,避免將 secrets 打包進程式,或錯誤使用
DefaultAzureCredential
適合使用這個 skill 的對象
如果你是以下角色,建議使用 azure-storage skill:
- 後端開發者,需要在 API、服務或背景工作中整合 Azure Storage
- 雲端工程師或 DevOps,希望為團隊建立一致的 Azure Storage 使用方式
- 資料或分析工程師,需要快速理解 Data Lake 與 Blob Storage 的差異與取捨
- Agent / MCP 使用者,想要支援 storage-aware 的工作流程(透過
azure__storage列出 storage accounts、containers 與 blobs)
azure-storage skill 能幫你解決哪些問題
透過這個 skill,你可以快速回答像是:
- 對於檔案、訊息以及 key-value 資料,我應該使用哪一種 Azure Storage service?
- 我要如何透過 MCP server 列出 storage accounts、containers 與 blobs?
- 在特定語言中,Blob、Queue、File Share 或 Data Lake 應該安裝哪一個 SDK 套件?
- 我要如何設定使用 managed identities 與 Azure RBAC 的免密碼驗證?
- 什麼時候應該使用 DefaultAzureCredential,什麼時候應該避免?
什麼情況適合或不適合使用 azure-storage
適合使用 azure-storage 的情境:
- 在 API 或 microservices 中整合 Blob Storage
- 掛載或管理適用於 lift-and-shift 工作負載的 file shares
- 使用 Azure Queue Storage 實作 非同步佇列
- 在 Table Storage 儲存與查詢 簡單的 key-value 或 entity 資料
- 處理 Azure Data Lake 上的分析型資料
不建議使用 azure-storage 的情境:
- 關聯式 SQL 資料庫(請使用 Azure SQL 或其他資料庫專用 skill)
- Cosmos DB 工作流程(請改用
azure-prepare與 Cosmos 專用 skills) - Event Hubs 或 Service Bus 訊息處理(請使用
azure-messaging與相關 skills)
如果你的工作負載主要是交易型 SQL 或高度事件串流,這個 skill 並不是最適合的起點。
使用方式
1. 安裝 azure-storage skill
要讓 azure-storage 在你的 agent 環境中可用,請從 microsoft/azure-skills repository 安裝:
npx skills add https://github.com/microsoft/azure-skills --skill azure-storage
安裝完成後,skill 會提供文件與參考資料,供你的 agent(或你透過 Files 檢視)查閱,包括:
SKILL.md– 支援服務與工具的高階說明references/auth-best-practices.md– 推薦的驗證模式與實務references/sdk-usage.md– 跨語言 SDK 概觀與安裝指令references/sdk/*.md– 各語言對 Blob、Queue、File Share、Data Lake 與 Tables 的快速參考
如果你的環境已啟用 Azure MCP server,這個 skill 也會整合 azure__storage tools,用於帳戶與 blob 操作。
2. 了解可用的服務與工具
請先開啟 SKILL.md。其中包含一個 Services matrix,說明各個 storage service 適用時機,以及可搭配的工具:
- Blob Storage – 通用物件儲存
- MCP:
azure__storage - CLI:
az storage blob
- MCP:
- File Shares – SMB 檔案分享
- CLI:
az storage file
- CLI:
- Queue Storage – 非同步訊息
- CLI:
az storage queue
- CLI:
- Table Storage – key-value entities
- CLI:
az storage table
- CLI:
- Data Lake – 分析與階層式命名空間
- CLI:
az storage fs
- CLI:
這能幫助你在開始寫程式前,就先選對服務與 CLI 指令集。
3. 使用 MCP server 進行儲存資源探索(若已啟用)
當 Azure MCP server 已設定完成時,azure-storage skill 會說明如何使用 azure__storage tools,包括:
storage_account_list– 列出訂用帳戶中的 storage accountsstorage_container_list– 列出指定 storage account 內的 containersstorage_blob_list– 列出 container 內的 blobsstorage_blob_get– 下載 blob 內容
這些工具非常適合在撰寫程式前,讓你的 agent 先檢視現有的 storage、抓取範例資料,或驗證設定是否正確。
4. 安裝適合你語言的 SDK
references/sdk-usage.md 提供一個精簡表格,列出每種語言與服務應安裝的 SDK packages,並附上對應的安裝指令。
例如,若要以 Python 開發 Blob Storage:
pip install azure-storage-blob azure-identity
若使用 JavaScript/Node.js 開發 Blob Storage:
npm install @azure/storage-blob @azure/identity
若以 Java(Maven)開發 Blob Storage:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
references/sdk-usage.md 也會標示 Queue、File Share 與 Data Lake 等相關 SDK,讓你在不同服務間維持一致的技術棧。
5. 遵循驗證最佳實務
驗證通常是 Azure Storage 整合最容易出問題的地方。azure-storage skill 中的 references/auth-best-practices.md 將 Microsoft 的官方建議整理成實務守則。
重點包括:
- 在正式環境(Azure 託管環境)使用 managed identities 搭配 Azure RBAC
- 在正式環境偏好使用
ManagedIdentityCredential,避免依賴DefaultAzureCredential - 在本機開發時,
DefaultAzureCredential方便好用且可接受 - 在 CI/CD pipeline 中,使用
AzurePipelinesCredential或WorkloadIdentityCredential - 在 內部機房正式環境 中,使用
ClientCertificateCredential或WorkloadIdentityCredential
這樣可以避免外洩 secrets、減少設定偏差,並讓不同環境中的驗證行為更可預期。
6. 使用快速參考開始撰寫程式
當你已決定要使用的服務與 SDK 之後,可以利用 references/sdk/ 中各語言的快速參考檔,加速實作。例如:
references/sdk/azure-storage-blob-py.md– 使用 Python 的 Blob Storagereferences/sdk/azure-storage-blob-ts.md– 使用 TypeScript/Node.js 的 Blob Storagereferences/sdk/azure-storage-file-share-py.md與azure-storage-file-share-ts.md– Azure Filesreferences/sdk/azure-storage-queue-py.md與azure-storage-queue-ts.md– Queue Storagereferences/sdk/azure-storage-file-datalake-py.md– 使用 Python 的 Data Lake Storagereferences/sdk/azure-data-tables-py.md與azure-data-tables-java.md– Table Storage
每個快速參考通常包含:
- 儲存與身分驗證套件的 安裝說明
- 使用
DefaultAzureCredential建立 client 的 Quick Start 程式碼(適用於本機開發) - 關於效能、錯誤處理、分割設計(Tables)以及上傳/下載模式的最佳實務
將這些範例當作模板,你可以在維持建議架構的前提下,快速從概念走到可運行的程式碼。
7. 依你的環境與部署模式調整
azure-storage skill 的設計重點是可調整,而不是照單全收。實際採用這些模式時,請:
- 將像
https://<account>.blob.core.windows.net這類 placeholder URL 替換為你的實際帳戶 endpoint - 依照環境選擇適當的 credential(正式環境使用 managed identity,本機開發使用
DefaultAzureCredential) - 使用
SKILL.md中的 CLI 指令(如az storage blob、az storage queue等),在部署前先確認帳戶、containers、queues 與權限都已設定正確
這可以大幅減少部署後才發現連線與權限問題的時間。
常見問題(FAQ)
azure-storage 是程式庫還是文件型 skill?
azure-storage 主要是一個文件與指引型 skill。它本身並不提供執行時程式庫,而是帶你使用官方的 Azure Storage SDK(如 Python、JavaScript/Node.js、Java、.NET、Go、Rust 等),並說明如何正確使用這些 SDK。
azure-storage skill 能協助列出 accounts 和 blobs 嗎?
可以。如果你已設定 Azure MCP server,這個 skill 會說明如何使用 azure__storage tools,例如 storage_account_list、storage_container_list、storage_blob_list 來列出 accounts、containers 與 blobs,並使用 storage_blob_get 下載 blob 內容。
哪些情境適合使用 Blob,哪些適合 Data Lake?
azure-storage skill 的 SKILL.md 中有說明:
- 若需要通用物件儲存、備份、靜態網站內容或檔案型工作負載,請使用 Blob Storage
- 若你需要大數據分析、階層式命名空間,或與偏好 Data Lake semantics 的分析引擎整合,請使用 Data Lake
兩者建構於相同的基礎平台之上,所以選擇主要取決於你打算如何組織與查詢資料。
我可以用 azure-storage 操作 Cosmos DB 或 SQL 資料庫嗎?
不行。azure-storage skill 專注於 Azure Storage 服務。針對 Cosmos DB 與更進階的資料庫準備作業,repository 建議使用 azure-prepare 與 Cosmos 專用 skills。若是關聯式 SQL 資料庫,則應使用以 SQL 為主的工具或 skills。
在 azure-storage 中,在正式環境使用 DefaultAzureCredential 安全嗎?
這個 skill 明確建議不要在正式環境使用 DefaultAzureCredential。它非常適合用在本機開發,但在正式環境應改用:
ManagedIdentityCredential:適用於 Azure 託管工作負載ClientCertificateCredential或WorkloadIdentityCredential:適用於內部機房工作負載- 視情況使用 CI 專用的 credential,例如
AzurePipelinesCredential
這些做法可以讓驗證行為更具決定性、降低因 fallback 嘗試造成的延遲,並縮小攻擊面。
azure-storage 是否同時支援 Python 和 JavaScript/Node.js?
有。references/sdk-usage.md 與 references/sdk/ 底下的檔案中,包含 Python 與 JavaScript/Node.js 的快速參考與安裝指令,同時也涵蓋 Java、.NET、Go 與 Rust。如果你正在以 Python 或 Node.js 開發後端,會找到可直接調整套用到 Blob、Queue、File Share、Data Lake 與 Tables 的示例。
我要如何判斷 azure-storage 是否適合作為我專案的起點?
當符合以下條件時,適合優先使用 azure-storage:
- 應用程式必須在 Azure 中儲存或提供檔案、物件或大型資料集
- 你需要輕量級佇列或 key-value 儲存,而不想自行維運基礎架構
- 你希望有明確、有主見的指引,告訴你該安裝哪個 SDK,以及如何安全地進行驗證
若你的專案主要著重在關聯式資料庫、高吞吐事件串流(Event Hubs、Service Bus)或特化的分析平台,建議先從專門針對這些服務的 skills 著手,並在需要加入 storage 為核心的功能時,再搭配使用 azure-storage。
