事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 Fabric、Power BI 與 SQL 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名Microsoft Azure 儲存體模擬器是一項工具,可以針對本機開發目的模擬 Azure Blob、佇列和資料表服務。 您可以針對儲存體服務在本機測試您的應用程式,而不需建立 Azure 訂用帳戶,也不會產生任何費用。 如果您滿意應用程式在模擬器中的運作方式,就可以切換成使用雲端的 Azure 儲存體帳戶。
重要
Azure 儲存體模擬器現在已淘汰。 Microsoft 建議您搭配 Azure 儲存體使用 Azurite 模擬器來進行本機開發。 Azurite 會取代 Azure 儲存體模擬器。 Azurite 將繼續更新以支援最新版本的 Azure 儲存體 API。 如需詳細資訊,請參閱使用 Azurite 模擬器進行本機 Azure 儲存體開發。
儲存體模擬器隨 Microsoft Azure SDK 提供。 您也可以使用獨立安裝程式 (直接下載) 來安裝儲存體模擬器。 若要安裝儲存體模擬器,您必須具有電腦上的系統管理權限。
儲存體模擬器目前只能在 Windows 上執行。 針對 Linux 上的模擬,請使用 Azurite 模擬器。
備註
在某個儲存體模擬器版本中建立的資料不保證可在使用不同版本時加以存取。 如果您需要長期保存資料,建議您將該資料儲存於 Azure 儲存體帳戶中 (而不是儲存體模擬器中)。
儲存體模擬器取決於特定的 OData 程式庫版本。 不支援將儲存體模擬器所使用的 OData DLL 更換為其他版本,而且可能會造成非預期的行為。 不過,儲存體服務支援的任何版本 OData 可能用來將要求傳送至模擬器。
儲存體模擬器會使用本機 Microsoft SQL Server 2012 Express LocalDB 執行個體來模擬 Azure 儲存體服務。 您可以選擇設定儲存體模擬器存取 SQL Server 本機執行個體,而非 LocalDB 執行個體。 如需詳細資訊,請參閱本文稍後的啟動及初始化儲存體模擬器一節。
儲存體模擬器會使用 Windows 驗證,連線到 SQL Server 或 LocalDB。
儲存體模擬器與 Azure 儲存體服務的功能有所差異。 如需有關這些差異的詳細資訊,請參閱本文稍後的儲存體模擬器和 Azure 儲存體之間的差異一節。
啟動 Azure 儲存體模擬器:
Azure Storage Emulator
。當儲存體模擬器啟動時,將會出現 [命令提示字元] 視窗。 您可以使用此主控台視窗來啟動和停止儲存體模擬器。 您也可以從命令提示字元清除資料、取得狀態,以及初始化模擬器。 如需詳細資訊,請參閱本文稍後的儲存體模擬器命令列工具參考一節。
備註
如果另一個儲存體模擬器 (例如 Azurite) 正在系統上執行,則 Azure 儲存體模擬器可能無法正確啟動。
如果模擬器正在執行,您就會在 Windows 工作列通知區域看到圖示。
當您關閉儲存體模擬器的 [命令提示字元] 視窗時,儲存體模擬器將會繼續執行。 若要再次顯示 [儲存體模擬器] 主控台視窗,請遵循先前步驟,如同啟動儲存體模擬器一樣。
當您第一次執行儲存體模擬器時,系統會為您初始化本機儲存體環境。 初始化處理程序會在 LocalDB 中建立資料庫,並為每個本機儲存體服務保留 HTTP 連接埠。
預設會將儲存體模擬器安裝至 C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator
。
提示
您可以使用 Microsoft Azure 儲存體總管來使用本機儲存體模擬器資源。 在您安裝並啟動儲存體模擬器之後,請在儲存體總管資源樹狀結構中的「本機和已連結」底下尋找「(模擬器 - 預設連接埠) (金鑰)」。
您可以使用儲存體模擬器命令列工具來初始化儲存體模擬器,以指向預設 LocalDB 執行個體以外的 SQL 資料庫執行個體:
開啟 [儲存體模擬器] 主控台視窗,如啟動及初始化儲存體模擬器一節中所述。
在主控台視窗中,輸入下列命令,其中 <SQLServerInstance>
是 SQL Server 執行個體的名稱。 若要使用 LocalDB,請指定 (localdb)\MSSQLLocalDb
做為 SQL Server 執行個體。
AzureStorageEmulator.exe init /server <SQLServerInstance>
您也可以使用下列命令,引導模擬器使用預設的 SQL Server 執行個體:
AzureStorageEmulator.exe init /server .
或者,您也可以使用下列命令,將資料庫初始化至預設 LocalDB 執行個體:
AzureStorageEmulator.exe init /forceCreate
如需有關這些命令的詳細資訊,請參閱儲存體模擬器命令列工具參考。
提示
您可以使用 Microsoft SQL Server Management Studio (SSMS) 來管理您的 SQL Server 執行個體,包括 LocalDB 安裝。 在 SMSS [連接到伺服器] 對話方塊中,於 [伺服器名稱:] 欄位中指定 (localdb)\MSSQLLocalDb
,以連接到 LocalDB 執行個體。
一旦您安裝並啟動儲存體模擬器,就可以對其測試您的程式碼。 您針對儲存體模擬器傳送的每個要求都必須經過授權,除非是匿名要求。 您可以使用共用金鑰驗證或共用存取簽章 (SAS),授權傳送給儲存體模擬器的要求。
模擬器支援共用金鑰驗證的單一固定帳戶及已知驗證金鑰。 此帳戶和金鑰都是唯一允許搭配模擬器使用的共用金鑰認證。 畫面如下:
Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
備註
模擬器所支援的驗證金鑰僅可用來測試用戶端驗證碼的功能。 它不提供任何安全性用途。 您無法將生產儲存體帳戶和金鑰與模擬器搭配使用。 您不應該將開發帳戶與生產資料搭配使用。
模擬器只透過 HTTP 支援連線。 不過,HTTPS 是建議的通訊協定,用於存取生產 Azure 儲存體帳戶中的資源。
從您的應用程式連線到模擬器的最簡單方法,就是在應用程式參照捷徑 UseDevelopmentStorage=true
的組態檔中設定連接字串。 此捷徑相當於模擬器的完整連接字串,會指定每個 Azure 儲存體服務的帳戶名稱、帳戶金鑰和模擬器端點:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
下列 .NET 程式碼片段會示範如何從採用連接字串的方法使用捷徑。 例如,BlobContainerClient(String, String) 建構函式會採用連接字串。
BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();
在呼叫程式碼片段中的程式碼之前,請先確定模擬器可執行。
如需連接字串的詳細資訊,請參閱設定 Azure 儲存體連接字串。
備註
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱安裝 Azure PowerShell (部分機器翻譯)。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
您可以使用 儲存體總管 或其他支援共用金鑰驗證的應用程式來建立 SAS 令牌。
您也可以使用 Azure PowerShell 來產生 SAS 權杖。 下列範例會產生 SAS 權杖且對 blob 容器具有完整權限:
CONTAINER_NAME
:$context = New-AzStorageContext -Local
New-AzStorageContainer CONTAINER_NAME -Permission Off -Context $context
$now = Get-Date
New-AzStorageContainerSASToken -Name CONTAINER_NAME -Permission rwdl -ExpiryTime $now.AddDays(1.0) -Context $context -FullUri
針對新容器產生的共用存取簽章 URI 應該類似下列項目:
http://127.0.0.1:10000/devstoreaccount1/sascontainer?sv=2012-02-12&se=2015-07-08T00%3A12%3A08Z&sr=c&sp=wl&sig=t%2BbzU9%2B7ry4okULN9S0wst/8MCUhTjrHyV9rDNLSe8g%3Dsss
使用此範例建立的共用存取簽章的效期為一天。 簽章會將完整存取權限 (讀取、寫入、刪除、列出) 授與容器內的 Blob。
如需共用存取簽章的詳細資訊,請參閱使用共用存取簽章 (SAS) 授與 Azure 儲存體資源的有限存取權。
儲存體模擬器的服務端點與 Azure 儲存體帳戶的端點不同。 本機電腦不會進行網域名稱解析,要求儲存體模擬器端點必須是本機位址。
當您在 Azure 儲存體帳戶中定址資源時,可使用下列配置。 帳戶名稱是 URI 主機名稱的一部分,而要定址的資源是 URI 路徑的一部分:
<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>
例如,下列 URI 是 Azure 儲存體帳戶中的有效 blob 位址:
https://myaccount.blob.core.windows.net/mycontainer/myblob.txt
因為本機電腦不會進行網域名稱解析,所以帳戶名稱是 URI 路徑的一部分,而不是主機名稱。 針對儲存體模擬器中的資源使用下列 URI 格式:
http://<local-machine-address>:<port>/<account-name>/<resource-path>
例如,下列位址可能會用於存取儲存體模擬器中的 Blob:
http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt
儲存體模擬器的服務端點包括:
http://127.0.0.1:10000/<account-name>/<resource-path>
http://127.0.0.1:10001/<account-name>/<resource-path>
http://127.0.0.1:10002/<account-name>/<resource-path>
從 3.1 版開始,儲存體模擬器就支援讀取權限異地備援複寫 (RA-GRS)。 您可以將 -secondary 附加至帳戶名稱,以存取次要位置。 例如,下列位址可能會用於在儲存體模擬器中使用唯讀的次要位置來存取 Blob:
http://127.0.0.1:10000/myaccount-secondary/mycontainer/myblob.txt
備註
如需以程式設計方式使用儲存體模擬器來存取次要位置,請使用適用於 .NET 的儲存體用戶端程式庫 3.2 版或更新版本。 如需詳細資訊,請參閱 Microsoft Azure Storage Client Library for .NET (適用於 .NET 的 Microsoft Azure 儲存體用戶端程式庫)。
從 3.0 版開始,當您啟動儲存體模擬器時,就會顯示主控台視窗。 在主控台視窗中使用命令列來啟動和停止模擬器。 您也可以查詢狀態,並從命令列進行其他作業。
備註
如果您已安裝 Microsoft Azure 計算模擬器,當您啟動儲存體模擬器時,就會出現系統匣圖示。 使用滑鼠右鍵按一下圖示即可顯示功能表,提供圖形化方式來啟動和停止儲存體模擬器。
AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]
若要檢視選項清單,請在命令提示字元輸入 /help
。
選項 | 描述: | Command | 引數 |
---|---|---|---|
啟動 | 啟動儲存體模擬器。 | AzureStorageEmulator.exe start [-inprocess] |
-Reprocess:在目前的處理序中啟動模擬器,而不是建立新的處理序。 |
停止 | 停止儲存體模擬器。 | AzureStorageEmulator.exe stop |
|
狀態 | 列印儲存體模擬器的狀態。 | AzureStorageEmulator.exe status |
|
Clear | 清除命令列上指定的所有服務中的資料。 | AzureStorageEmulator.exe clear [blob] [table] [queue] [all] |
blob:清除 blob 資料。 queue:清除佇列資料。 table:清除資料表資料。 all:清除所有服務中的所有資料。 |
Init | 執行一次初始化以設定模擬器。 | AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] |
-server serverName\instanceName︰指定裝載 SQL 執行個體的伺服器。 -sqlinstance instanceName:指定在預設伺服器執行個體中使用之 SQL 執行個體的名稱。 -forcecreate:強制建立 SQL 資料庫,即使它已經存在。 -skipcreate︰略過建立 SQL 資料庫。 其優先順序高於 -forcecreate。 -reserveports︰嘗試保留與服務相關聯的 HTTP 連接埠。 -unreserveports︰嘗試移除服務相關聯 HTTP 連接埠的保留。 其優先順序高於 -reserveports。 -inprocess:在目前的處理序中執行初始化,而不是繁衍新的處理序。 如果變更連接埠保留,必須以提高權限啟動目前的處理程序。 |
因為儲存體模擬器是本機模擬環境,所以在雲端使用模擬器和 Azure 儲存體帳戶之間有一些差異:
LastSyncTime
回應元素的值當成目前的時間。下列差異適用於模擬器中的 Blob 儲存體:
下列差異適用於模擬器中的資料表儲存體:
Edm.Guid
或 Edm.Binary
的屬性只支援查詢篩選字串中的 Equal (eq)
與 NotEqual (ne)
比較運算子。模擬器中的佇列儲存體沒有特定差異。
DataServiceVersion
標頭 (但服務未傳回) 的問題。init
:-reserveports
(需要提高權限)、-unreserveports
(需要提高權限)、-skipcreate
。Get Blob Service Stats
、Get Queue Service Stats
和 Get Table Service Stats
API 支援次要帳戶,並且一律會根據基礎 SQL 資料庫,將 LastSyncTime 回應元素的值傳回為目前時間。 如需以程式設計方式使用儲存體模擬器來存取次要位置,請使用適用於 .NET 的儲存體用戶端程式庫 3.2 版或更新版本。 如需詳細資訊,請參閱「Microsoft Azure Storage Client Library for .NET」。事件
3月31日 下午11時 - 4月2日 下午11時
規模最大的 Fabric、Power BI 與 SQL 學習盛會。 3 月 31 日至 4 月 2 日。 使用代碼 FABINSIDER 可節省 $400。
立即報名訓練
學習路徑
在 Azure 上執行高效能運算 (HPC) 應用程式 - Training
Azure HPC 是適用於 HPC 和 AI 工作負載的特殊用途雲端功能,使用頂尖處理器和 HPC 級的 InfiniBand 互連來提供最佳的應用程式效能、可擴縮性和價值。 Azure HPC 可讓使用者透過一系列高度可用的 HPC 和 AI 技術來發揮創新、生產力和企業靈活性,且可隨著您業務和技術需求的變更進行動態配置。 此學習路徑是一系列可協助您開始使用 Azure HPC 的課程模組,您可以選擇您最感興趣的主題,或逐一完成每個課程模組。
文件
使用 Azurite 模擬器進行本機 Azure 儲存體開發
Azurite 開放原始碼模擬器提供免費的本機環境,可用來測試您的 Azure 儲存體應用程式。
使用 Azurite 執行自動化測試 - Azure Storage
了解如何使用 Azurite 對 Azure Blob 儲存體的私人端點撰寫自動化測試。
說明如何搭配 Azure 儲存體總管使用模擬器的文件