Använda Azure Storage Emulator för utveckling och testning (inaktuell)
Den Microsoft Azure Storage Emulator är ett verktyg som emulerar Azure Blob-, Queue- och Table-tjänsterna för lokal utveckling. Du kan testa programmet mot lagringstjänsterna lokalt utan att skapa en Azure-prenumeration eller medföra några kostnader. När du är nöjd med hur programmet fungerar i emulatorn växlar du till att använda ett Azure Storage-konto i molnet.
Viktigt
Nu är Azure Storage Emulator inaktuell. Microsoft rekommenderar att du använder Azurite-emulatorn för lokal utveckling med Azure Storage. Azurite ersätter Azure Storage Emulator. Azurite fortsätter att uppdateras för att stödja de senaste versionerna av Azure Storage API:er. Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage utveckling.
Hämta Storage Emulator
Den Storage Emulator är tillgänglig som en del av Microsoft Azure SDK. Du kan också installera Storage Emulator med hjälp av det fristående installationsprogrammet (direktnedladdning). Om du Storage Emulator måste du ha administratörsbehörighet på datorn.
Den Storage Emulator körs för närvarande endast på Windows. För emulering i Linux använder du Azurite-emulatorn.
Anteckning
Data som skapats i en Storage Emulator är inte garanterat tillgängliga när du använder en annan version. Om du behöver bevara dina data på lång sikt rekommenderar vi att du lagrar dessa data i ett Azure Storage-konto i stället för i Storage Emulator.
Vilka Storage Emulator beror på specifika versioner av OData-biblioteken. Det finns inte stöd för att ersätta OData-DLL:er som används av Storage Emulator andra versioner och det kan orsaka oväntat beteende. Alla versioner av OData som stöds av lagringstjänsten kan dock användas för att skicka begäranden till emulatorn.
Så här fungerar lagringsemulatorn
Den Storage Emulator använder en lokal Microsoft SQL Server 2012 Express LocalDB-instans för att emulera Azure Storage-tjänster. Du kan välja att konfigurera Storage Emulator åtkomst till en lokal instans av SQL Server stället för LocalDB-instansen. Mer information finns i avsnittet Starta Storage Emulator initiera programmet senare i den här artikeln.
Den Storage Emulator ansluter till SQL Server eller LocalDB med hjälp Windows autentisering.
Det finns vissa skillnader i funktionalitet mellan Storage Emulator och Azure-lagringstjänster. Mer information om dessa skillnader finns i avsnittet Skillnader mellan Storage Emulator och Azure Storage längre fram i den här artikeln.
Starta och initiera Storage Emulator
Så här startar du Azure Storage Emulator:
- Välj startknappen eller tryck på Windows tangenten.
- Börja skriva
Azure Storage Emulator. - Välj emulatorn i listan över program som visas.
När Storage Emulator startar visas ett kommandotolkfönster. Du kan använda det här konsolfönstret för att starta och stoppa Storage Emulator. Du kan också rensa data, hämta status och initiera emulatorn från kommandotolken. Mer information finns i Storage Emulator kommandoradsverktyg längre fram i den här artikeln.
Anteckning
Den Azure Storage Emulator kanske inte startar korrekt om en annan lagringsemulator, till exempel Azurite, körs i systemet.
När emulatorn körs visas en ikon i aktivitetsfältets meddelandefält i Windows.
När du stänger Storage Emulator kommandotolken fortsätter Storage Emulator att köras. Om du vill öppna Storage Emulator-konsolfönstret igen följer du föregående steg som om du startade Storage Emulator.
Första gången du kör Storage Emulator initieras den lokala lagringsmiljön åt dig. Initieringsprocessen skapar en databas i LocalDB och reserverar HTTP-portar för varje lokal lagringstjänst.
Den Storage Emulator installeras som standard på C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator .
Tips
Du kan använda Microsoft Azure Storage Explorer för att arbeta med lokala Storage Emulator resurser. Leta efter "(Emulator - Standardportar) (nyckel)" under "Lokal & ansluten" i resursträdet för Storage Explorer när du har installerat och startat Storage Emulator.
Initiera lagringsdatabasen Emulator använda en annan SQL databas
Du kan använda kommandoradsverktyget Emulator storage Storage Emulator att peka på en annan SQL än localDB-standardinstansen:
Öppna Storage Emulator konsolfönstret enligt beskrivningen i starta och initiera Storage Emulator avsnittet.
I konsolfönstret skriver du följande kommando, där
<SQLServerInstance>är namnet på den SQL Server instansen. Om du vill använda LocalDB anger(localdb)\MSSQLLocalDbdu SQL Server instansen.AzureStorageEmulator.exe init /server <SQLServerInstance>Du kan också använda följande kommando, som dirigerar emulatorn att använda standardinstansen SQL Server instansen:
AzureStorageEmulator.exe init /server .Eller så kan du använda följande kommando, som initierar databasen till localDB-standardinstansen:
AzureStorageEmulator.exe init /forceCreate
Mer information om dessa kommandon finns i Storage Emulator för kommandoradsverktyg.
Tips
Du kan använda Microsoft SQL Server Management Studio (SSMS) för att hantera SQL Server instanser, inklusive LocalDB-installationen. I dialogrutan SMSS Anslut till server anger du i fältet (localdb)\MSSQLLocalDb Servernamn: för att ansluta till LocalDB-instansen.
Autentisera begäranden mot Storage Emulator
När du har installerat och startat Storage Emulator kan du testa koden mot den. Varje begäran du gör mot Storage Emulator måste auktoriserats, såvida det inte är en anonym begäran. Du kan auktorisera begäranden mot Storage Emulator autentisering med delad nyckel eller med en signatur för delad åtkomst (SAS).
Auktorisera med autentiseringsuppgifter för delad nyckel
Emulatorn har stöd för ett enda fast konto och en välkänd autentiseringsnyckel för autentisering med delad nyckel. Det här kontot och nyckeln är de enda autentiseringsuppgifterna för delad nyckel som tillåts för användning med emulatorn. De är:
Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
Anteckning
Den autentiseringsnyckel som stöds av emulatorn är endast avsedd för att testa funktionen hos din klientautentisering. Det fungerar inte i något säkerhets syfte. Du kan inte använda ditt produktions lagrings konto och din nyckel med emulatorn. Du bör inte använda utvecklings kontot med produktions data.
Emulatorn stöder endast anslutning via HTTP. HTTPS är dock det rekommenderade protokollet för att få åtkomst till resurser i ett Azure Storage-konto för produktion.
Anslut till emulator-kontot med hjälp av genvägen
Det enklaste sättet att ansluta till emulatorn från ditt program är att konfigurera en anslutnings sträng i programmets konfigurations fil som refererar till genvägen UseDevelopmentStorage=true . Genvägen motsvarar den fullständiga anslutnings strängen för emulatorn, som anger konto namnet, konto nyckeln och emulatorns slut punkter för var och en av de Azure Storage tjänsterna:
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;
Följande .NET-kodfragment visar hur du kan använda genvägen från en metod som tar en anslutnings sträng. Till exempel tar BlobContainerClient (sträng, sträng) en anslutnings sträng.
BlobContainerClient blobContainerClient = new BlobContainerClient("UseDevelopmentStorage=true", "sample-container");
blobContainerClient.CreateIfNotExists();
Kontrol lera att emulatorn körs innan du anropar koden i kodfragmentet.
Mer information om anslutningssträngar finns i Konfigurera Azure Storage anslutningssträngar.
Auktorisera med en signatur för delad åtkomst
Anteckning
I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Vissa Azure Storage-klientbibliotek, till exempel Xamarin-biblioteket, stöder endast autentisering med en SAS-token (signatur för delad åtkomst). Du kan skapa SAS-token med hjälp Storage Explorer eller ett annat program som stöder autentisering med delad nyckel.
Du kan också generera en SAS-token med hjälp av Azure PowerShell. I följande exempel genereras en SAS-token med fullständig behörighet till en blobcontainer:
- Installera Azure PowerShell om du inte redan har gjort det (den senaste versionen av Azure PowerShell cmdlets rekommenderas). Installationsanvisningar finns i Installera och konfigurera Azure PowerShell.
- Öppna Azure PowerShell kör följande kommandon och ersätt
CONTAINER_NAMEmed ett val av namn:
$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
Resulterande URI för signatur för delad åtkomst för den nya containern bör se ut ungefär så här:
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%2F8MCUhTjrHyV9rDNLSe8g%3Dsss
Signaturen för delad åtkomst som skapats med det här exemplet är giltig i en dag. Signaturen ger fullständig åtkomst (läsa, skriva, ta bort, lista) till blobar i containern.
Mer information om signaturer för delad åtkomst finns i Bevilja begränsad åtkomst till Azure Storage resurser med signaturer för delad åtkomst (SAS).
Hantera resurser i Storage Emulator
Tjänstslutpunkterna för Storage Emulator skiljer sig från slutpunkterna för ett Azure Storage-konto. Den lokala datorn använder inte domännamnsmatchning, vilket kräver att Storage Emulator-slutpunkter är lokala adresser.
När du adresserar en resurs i ett Azure Storage-konto använder du följande schema. Kontonamnet är en del av URI-värdnamnet och resursen som åtgärdas är en del av URI-sökvägen:
<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>
Följande URI är till exempel en giltig adress för en blob i ett Azure Storage-konto:
https://myaccount.blob.core.windows.net/mycontainer/myblob.txt
Eftersom den lokala datorn inte använder domännamnsmatchning är kontonamnet en del av URI-sökvägen i stället för värdnamnet. Använd följande URI-format för en resurs i Storage Emulator:
http://<local-machine-address>:<port>/<account-name>/<resource-path>
Följande adress kan till exempel användas för att komma åt en blob i Storage Emulator:
http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt
Tjänstslutpunkterna för Storage Emulator är:
- Blob Service:
http://127.0.0.1:10000/<account-name>/<resource-path> - Kötjänst:
http://127.0.0.1:10001/<account-name>/<resource-path> - Tabelltjänst:
http://127.0.0.1:10002/<account-name>/<resource-path>
Adressera kontot sekundärt med RA-GRS
Från och med version 3.1 Storage Emulator stöd för read-access geo-redundant replikering (RA-GRS). Du kan komma åt den sekundära platsen genom att lägga till -secondary till kontonamnet. Följande adress kan till exempel användas för åtkomst till en blob med hjälp av den skrivskyddade sekundära i Storage Emulator:
http://127.0.0.1:10000/myaccount-secondary/mycontainer/myblob.txt
Anteckning
För programmatisk åtkomst till den sekundära med Storage Emulator använder du Storage för .NET version 3.2 eller senare. Mer information Microsoft Azure Storage .NET finns i Microsoft Azure Storage.NET.
Storage Emulator kommandoradsverktygsreferens
Från och med version 3.0 visas ett konsolfönster när du startar Storage Emulator. Använd kommandoraden i konsolfönstret för att starta och stoppa emulatorn. Du kan också fråga efter status och göra andra åtgärder från kommandoraden.
Anteckning
Om du har Microsoft Azure Compute Emulator visas en ikon i systemfältet när du startar Storage Emulator. Högerklicka på ikonen för att visa en meny som visar ett grafiskt sätt att starta och stoppa Storage Emulator.
Syntax för kommandorad
AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]
Alternativ
Om du vill visa en lista över alternativ skriver du /help i kommandotolken.
| Alternativ | Beskrivning | Kommando | Argument |
|---|---|---|---|
| Start | Startar Storage Emulator. | AzureStorageEmulator.exe start [-inprocess] |
-Ombearbeta: Starta emulatorn i den aktuella processen i stället för att skapa en ny process. |
| Stopp | Stoppar Storage Emulator. | AzureStorageEmulator.exe stop |
|
| Status | Skriver ut status för Storage Emulator. | AzureStorageEmulator.exe status |
|
| Rensa | Rensar data i alla tjänster som anges på kommandoraden. | AzureStorageEmulator.exe clear [blob] [table] [queue] [all] |
blob: Rensar blobdata. queue: Rensar ködata. table: Rensar tabelldata. all: Rensar alla data i alla tjänster. |
| Init | Gör en-gång-initiering för att konfigurera emulatorn. | AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] |
-server serverName\instanceName: Anger den server som är värd för SQL instansen. -sqlinstance instanceName: Anger namnet på SQL instans som ska användas i standardserverinstansen. -forcecreate: Tvingar skapandet av SQL databasen, även om den redan finns. -skipcreate: Hoppar över skapandet av SQL databasen. Detta har företräde framför -forcecreate. -reserveports: Försöker reservera DE HTTP-portar som är associerade med tjänsterna. -unreserveports: Försöker ta bort reservationer för DE HTTP-portar som är associerade med tjänsterna. Detta har företräde framför -reserveports. -inprocess: Utför initiering i den aktuella processen i stället för att skapa en ny process. Den aktuella processen måste startas med förhöjd behörighet om du ändrar portreservationer. |
Skillnader mellan Storage Emulator och Azure Storage
Eftersom Storage Emulator är en lokal emulerad miljö finns det skillnader mellan att använda emulatorn och ett Azure Storage-konto i molnet:
- Den Storage Emulator stöder endast ett enda fast konto och en välkänd autentiseringsnyckel.
- Den Storage Emulator är inte en skalbar lagringstjänst och stöder inte ett stort antal samtidiga klienter.
- Enligt beskrivningen i Adressera resurser i Storage Emulatorbehandlas resurserna på olika sätt i Storage Emulator jämfört med ett Azure Storage-konto. Skillnaden beror på att domännamnsmatchning är tillgängligt i molnet men inte på den lokala datorn.
- Från och med version 3.1 Storage Emulator-kontot read-access geo-redundant replication (RA-GRS). I emulatorn har alla konton RA-GRS aktiverat och det finns aldrig någon fördröjning mellan de primära och sekundära replikerna. Åtgärderna Hämta blobtjänststatistik, Hämta kötjänststatistik och Hämta tabelltjänststatistik stöds på det sekundära kontot och returnerar alltid värdet för svarselementet som aktuell tid enligt den
LastSyncTimeunderliggande SQL-databasen. - Tjänstslutpunkter för Filtjänst och SMB-protokoll stöds för närvarande inte i Storage Emulator.
- Om du använder en version av lagringstjänsterna som inte stöds av emulatorn returnerar emulatorn ett VersionNotSupportedByEmulator-fel (HTTP-statuskod 400 – Felaktig begäran).
Skillnader för Blob Storage
Följande skillnader gäller för Blob Storage i emulatorn:
- Den Storage Emulator stöder endast blobstorlekar på upp till 2 GB.
- Den maximala längden på ett blobnamn i Storage Emulator är 256 tecken, medan den maximala längden på ett blobnamn i Azure Storage är 1 024 tecken.
- Inkrementell kopiering tillåter att ögonblicksbilder från överskrivna blobar kopieras, vilket returnerar ett fel i tjänsten.
- Hämta sidintervallsdifferens fungerar inte mellan ögonblicksbilder som kopieras med hjälp av inkrementell kopieringsblob.
- Put Blob-åtgärden kan lyckas mot en blob som finns i Storage Emulator med ett aktivt lån även om låne-ID:t inte har angetts i begäran.
- Tilläggsåtgärder för blob stöds inte av emulatorn. Om du försöker utföra en åtgärd på en tilläggsblob returneras felet FeatureNotSupportedByEmulator (HTTP-statuskod 400 – Felaktig begäran).
Skillnader för Table Storage
Följande skillnader gäller för Table Storage i emulatorn:
- Datumegenskaper i Table-tjänsten i Storage Emulator stöder endast intervallet som stöds av SQL Server 2005 (de måste vara senare än 1 januari 1753). Alla datum före 1 januari 1753 ändras till det här värdet. Datumprecisionen är begränsad till precisionen för SQL Server 2005, vilket innebär att datumen är exakta till 1/300:e sekund.
- Den Storage Emulator har stöd för egenskapsvärden för partitionsnyckel och radnyckel på mindre än 512 byte vardera. Den totala storleken på kontonamnet, tabellnamnet och nyckelegenskapsnamnen tillsammans får inte överskrida 900 byte.
- Den totala storleken på en rad i en tabell i Storage Emulator mindre än 1 MB.
- I Storage Emulator egenskaper för datatypen eller stöder
Edm.GuidEdm.Binaryendast jämförelseoperatorerEqual (eq)och iNotEqual (ne)frågefiltersträngar.
Skillnader för Queue Storage
Det finns inga skillnader som är specifika för Queue Storage i emulatorn.
Storage Emulator – information
Version 5.10
- Lagringstjänsterna Storage Emulator inte version 2019-07-07 av lagringstjänsterna på blob-, kö- och tabelltjänstslutpunkter.
Version 5.9
- Lagringstjänsterna Storage Emulator inte version 2019-02-02 av lagringstjänsterna på blob-, kö- och tabelltjänstslutpunkter.
Version 5.8
- Lagringstjänsterna Storage Emulator inte version 2018-11-09 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
Version 5.7
- En bugg som skulle orsaka en krasch om loggning aktiverades har åtgärdats.
Version 5.6
- Nu Storage Emulator version 2018-03-28 av lagringstjänsterna på blob-, kö- och tabelltjänstslutpunkter.
Version 5.5
- Nu Storage Emulator version 2017-11-09 av lagringstjänsterna på blob-, kö- och tabelltjänstslutpunkter.
- Stöd har lagts till för egenskapen blob Skapad, som returnerar blobens skapandetid.
Version 5.4
- För att förbättra installationsstabiliteten försöker emulatorn inte längre reservera portar vid installationstid. Om du vill ha portreservationer använder du alternativet -reserveports i kommandot init för att ange dem.
Version 5.3
- Nu Storage Emulator version 2017-07-29 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
Version 5.2
- Nu Storage Emulator version 2017-04-17 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
- En bugg har åtgärdats där tabellegenskapsvärden inte kodats korrekt.
Version 5.1
- En bugg har åtgärdats där Storage Emulator returnerade
DataServiceVersion-huvudet i vissa svar där tjänsten inte var det.
Version 5.0
- Installationsprogrammet Storage Emulator inte längre efter befintliga MSSQL- och .NET Framework installationer.
- Den Storage Emulator installationsprogrammet skapar inte längre databasen som en del av installationen. Databasen skapas fortfarande vid behov som en del av starten.
- Skapandet av databasen kräver inte längre utökade privilegier.
- Portreservationer behövs inte längre för start.
- Lägger till följande alternativ i
init:-reserveports(kräver utökade privilegier),-unreserveports(kräver utökade privilegier),-skipcreate. - Nu Storage Emulator användargränssnittet på ikonen i systemfältet kommandoradsgränssnittet. Det gamla användargränssnittet är inte längre tillgängligt.
- Vissa DLL-filer har tagits bort eller bytt namn.
Version 4.6
- Nu Storage Emulator version 2016-05-31 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
Version 4.5
- En bugg som gjorde att installationen och initieringen misslyckades när backing-databasen byter namn har åtgärdats.
Version 4.4
- Nu Storage Emulator version 2015-12-11 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
- Den Storage Emulator skräpinsamlingen av blobdata är nu effektivare när du hanterar ett stort antal blobar.
- En bugg har åtgärdats som gjorde att container-ACL XML verifierades något annorlunda än hur lagringstjänsten gör det.
- En bugg som ibland orsakade att max- och min DateTime-värden rapporterades i fel tidszon har åtgärdats.
Version 4.3
- Nu Storage Emulator version 2015-07-08 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
Version 4.2
- Nu Storage Emulator version 2015-04-05 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell.
Version 4.1
- Nu Storage Emulator version 2015-02-21 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell. Den stöder inte de nya tilläggsblobfunktionerna.
- Emulatorn returnerar nu ett meningsfullt felmeddelande för versioner av lagringstjänster som inte stöds. Vi rekommenderar att du använder den senaste versionen av emulatorn. Om du får felet VersionNotSupportedByEmulator (HTTP-statuskod 400 – Felaktig begäran) laddar du ned den senaste versionen av emulatorn.
- En bugg har åtgärdats där ett rastillstånd gjorde att tabellentitetsdata var felaktiga under samtidiga sammanslagningsåtgärder.
Version 4.0
- Den Storage Emulator körbara filen har bytt namn till AzureStorageEmulator.exe.
Version 3.2
- Nu Storage Emulator version 2014-02-14 av lagringstjänsterna på tjänstslutpunkter för blob, kö och tabell. Filtjänstslutpunkter stöds för närvarande inte i Storage Emulator. Se Versionshantering för Azure Storage Services för information om version 2014-02-14.
Version 3.1
- Geo-redundant lagring med läsbehörighet (RA-GRS) stöds nu i Storage Emulator. API:erna , och stöds för kontots sekundära och returnerar alltid värdet för
Get Blob Service StatsGet Queue Service StatsLastSyncTime-svarselementet som aktuell tid enligt denGet Table Service Statsunderliggande SQL databasen. För programmatisk åtkomst till den sekundära med Storage Emulator använder du Storage för .NET version 3.2 eller senare. Mer information Microsoft Azure Storage finns i Microsoft Azure Storage för .NET-referens.
Version 3.0
- Den Azure Storage Emulator levereras inte längre i samma paket som beräkningsemulatorn.
- Det Storage Emulator grafiska användargränssnittet är inaktuellt. Det har ersatts av ett skriptbart kommandoradsgränssnitt. Mer information om kommandoradsgränssnittet finns i Storage Emulator Command-Line tool reference (Referens för Storage Emulator Command-Line verktyg). Det grafiska gränssnittet fortsätter att finnas i version 3.0, men det kan bara nås när Compute Emulator har installerats genom att högerklicka på ikonen i systemfältet och välja Visa Storage Emulator användargränssnitt.
- Version 2013-08-15 av Azure Storage-tjänsterna stöds nu fullt ut. (Tidigare stöds den här versionen endast av Storage Emulator version 2.2.1 Preview.)
Nästa steg
- Utvärdera plattformsoberoende, community-underhållna öppen källkod med Storage Emulator Azurite.
- Azure Storage exempel som använder .NET innehåller länkar till flera kodexempel som du kan använda när du utvecklar ditt program.
- Du kan använda Microsoft Azure Storage Explorer för att arbeta med resurser i Storage molnkonto och i Storage Emulator.