Använd Azurite emulator för lokal Azure Storage utveckling

Azurite emulatorer för öppen källkod ger en kostnadsfri lokal miljö för att testa dina Azure-blob-, kölagrings- och tabellagringsprogram. När du är nöjd med hur programmet fungerar lokalt kan du byta till ett Azure Storage-konto i molnet. Emulatorerna har stöd på olika plattformar i Windows, Linux och macOS.

Azurite är den framtida plattformen med lagrings emulatorer. Azurite ersätter Azure Storage Emulator. Azurite fortsätter att uppdateras för att stödja de senaste versionerna av Azure Storage API:er.

Det finns flera olika sätt att installera och köra Azurite på ditt lokala system. Välj någon av flikarna.

Installera Azurite

Azurite är automatiskt tillgängligt med Visual Studio 2022. Om du kör en tidigare version av Visual Studio måste du installera Azurite med hjälp av antingen Node Package Manager, DockerHub eller genom att klona github-databasen azurite.

Kör Azurite

Med några konfigurationer kan Azure-funktioner eller ASP.NET starta Azurite automatiskt. För alla andra projekttyper måste du starta Azurite från kommandoraden.

Köra Azurite från kommandoraden

Du hittar den körbara azurite-filen i mappen tillägg i Visual Studio installationen. Platsen kan variera beroende på vilken version av Visual Studio du har installerad. Om du till exempel har installerat Visual Studio 2022 Professional-versionen på en Windows-dator eller virtuell dator (VM) skulle du hitta den körbara filen Azurite på den här platsen: C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator .

När du har kört den körbara filen lyssnar Azurite efter anslutningar.

Utdata från kommandoraden i Azurite

Köra Azurite från ett Azure Functions-projekt

I Visual Studio 2022 skapar du ett Azure Functions-projekt. När du skapar projektet väljer du Storage Emulator.

Storage emulatoralternativ i projektet Azure Functions

Azurite startar automatiskt när du har skapat projektet.

Azurite-kommandoradsresultat i projektet Azure Functions

Köra Azurite från ett ASP.NET projekt

I Visual Studio 2022 kan du skapa ett ASP.NET Core Web App-projekt. Öppna sedan dialogrutan Anslutna tjänster, välj Lägg till ett tjänstsambandoch välj sedan Storage Azurite emulator.

Dialogrutan Anslutna tjänster i ASP.NET Core Web App-projekt

I dialogrutan Konfigurera Storage Azurite emulator anger du fältet Anslutningssträngnamn till och väljer sedan Slutför.

Dialogrutan Storage Azurite emulator

När konfigurationen är klar väljer du Stäng. Azurite emulatorn startar automatiskt.

Azurite-kommandoradsutdata i ASP.NET projekt

Kommandoradsalternativ

Det här avsnittet innehåller information om tillgängliga kommandoradsväxlar när Azurite startas.

Hjälp

Valfritt – Få hjälp via kommandoraden med hjälp av --help växeln eller.

azurite -h
azurite --help

Blob listening host

Valfritt – Azurite lyssnar som standard på 127.0.0.1 som lokal server. Använd --blobHost växeln för att ställa in adressen efter dina behov.

Acceptera endast förfrågningar på den lokala datorn:

azurite --blobHost 127.0.0.1

Tillåt fjärrbegäranden:

azurite --blobHost 0.0.0.0

Varning!

Om du tillåter fjärrbegäranden kan ditt system bli sårbart för externa angrepp.

Blob listening port-konfiguration

Valfritt – Azurite lyssnar för Blob-tjänsten i port 10000 som standard. Använd --blobPort växeln för att ange den lyssnarport som du behöver.

Obs!

När du har använt en anpassad port måste du uppdatera anslutningssträngen eller motsvarande konfiguration i Azure Storage eller SDKs.

Anpassa blob-tjänstens lyssnarport:

azurite --blobPort 8888

Låt systemet automatiskt välja en tillgänglig port:

azurite --blobPort 0

Den port som används visas när Azurite startas.

Kölyssningsvärd

Valfritt – Azurite lyssnar som standard på 127.0.0.1 som lokal server. Använd --queueHost växeln för att ställa in adressen efter dina behov.

Acceptera endast förfrågningar på den lokala datorn:

azurite --queueHost 127.0.0.1

Tillåt fjärrbegäranden:

azurite --queueHost 0.0.0.0

Varning!

Om du tillåter fjärrbegäranden kan ditt system bli sårbart för externa angrepp.

Konfiguration av kölyssningsport

Valfritt – Azurite lyssnar som standard för kötjänsten i port 10001. Använd --queuePort växeln för att ange den lyssnarport som du behöver.

Obs!

När du har använt en anpassad port måste du uppdatera anslutningssträngen eller motsvarande konfiguration i Azure Storage eller SDKs.

Anpassa kötjänstens lyssnande port:

azurite --queuePort 8888

Låt systemet automatiskt välja en tillgänglig port:

azurite --queuePort 0

Den port som används visas när Azurite startas.

Table listening host

Valfritt – Azurite lyssnar som standard på 127.0.0.1 som lokal server. Använd --tableHost växeln för att ställa in adressen efter dina behov.

Acceptera endast förfrågningar på den lokala datorn:

azurite --tableHost 127.0.0.1

Tillåt fjärrbegäranden:

azurite --tableHost 0.0.0.0

Varning!

Om du tillåter fjärrbegäranden kan ditt system bli sårbart för externa angrepp.

Konfiguration av tabelllyssningsport

Valfritt – Azurite lyssnar för tabelltjänsten i port 10002 som standard. Använd --tablePort växeln för att ange den lyssnarport som du behöver.

Obs!

När du har använt en anpassad port måste du uppdatera anslutningssträngen eller motsvarande konfiguration i Azure Storage eller SDKs.

Anpassa lyssnarporten för tabelltjänsten:

azurite --tablePort 11111

Låt systemet automatiskt välja en tillgänglig port:

azurite --tablePort 0

Den port som används visas när Azurite startas.

Sökväg till arbetsyta

Valfritt – Azurite lagrar data till den lokala hårddisken under körningen. Använd eller -l växla för att ange en bana som plats för --location arbetsytan. Som standard används den aktuella processens arbetskatalog. Observera det gemena "l".

azurite -l c:\azurite
azurite --location c:\azurite

Åtkomstlogg

Valfritt – Som standard visas åtkomstloggen i konsolfönstret. Inaktivera visningen av åtkomstloggen med hjälp av -s--silent växeln eller.

azurite -s
azurite --silent

Felsökningslogg

Valfritt – Felsökningsloggen innehåller detaljerad information om varje begäran och stack-spårning av undantag. Aktivera felsökningsloggen genom att ange en giltig lokal sökväg till -d eller --debug växeln.

azurite -d path/debug.log
azurite --debug path/debug.log

Löst läge

Valfritt – Azurite använder som standard strikt läge för att blockera begäranderubriker och parametrar som inte stöds. Inaktivera strikt läge genom att använda -L eller --loose växla. Observera versaler "L".

azurite -L
azurite --loose

Version

Valfritt – visa det installerade versionsnumret för Azurite med hjälp av --version växeln eller.

azurite -v
azurite --version

Certifikatkonfiguration (HTTPS)

Valfritt – Azurite använder HTTP-protokollet som standard. Aktivera HTTPS-läge genom att ange en sökväg till certifikatfilen Privacy Enhanced Mail (.pem) eller Personlig information Exchange (.pfx) till bytet.

När --cert det tillhandahålls för en PEM-fil måste du ange en motsvarande --key växel.

azurite --cert path/server.pem --key path/key.pem

När --cert tillhandahålls för en PFX-fil måste du ange en motsvarande --pwd växel.

azurite --cert path/server.pfx --pwd pfxpassword

Detaljerad information om hur du skapar PEM- och PFX-filer finns i HTTPS-installation .

OAuth-konfiguration

Valfritt – Aktivera OAuth-autentisering för Azurite med hjälp av växeln.

azurite --oauth basic --cert path/server.pem --key path/key.pem

Obs!

OAuth kräver en HTTPS-slutpunkt. Kontrollera att HTTPS är aktiverat genom att --cert växla med --oauth växlingsknappen.

Azurite stöder grundläggande autentisering genom att basic ange parametern till --oauth växeln. Azurite gör grundläggande autentisering, t.ex. verifiering av inkommande bearer-token, kontrollerar utfärdare, målgrupp och utgång. Azurite kontrollerar inte tokensignaturen eller -behörigheterna.

Hoppa över API-versionskontroll

Valfritt – Vid start kontrollerar Azurite att den begärda API-versionen är giltig. Följande kommando hoppar över API-versionskontrollen:

azurite --skipApiVersionCheck

Auktorisering för verktyg och SDKs

Anslut azurite från Azure Storage eller verktyg, till exempel Azure Storage Explorer, genom att använda någon autentiseringsstrategi. Autentisering krävs. Azurite har stöd för auktorisering med OAuth, Delad nyckel och SAS -signaturer (Delad åtkomst). Azurite stöder även anonym åtkomst till offentliga behållare.

Om du använder Azure-SDKs kan du starta Azurite med --oauth basic and --cert --key/--pwd alternativen.

Välkända lagringskonto och nyckel

Azurite accepterar samma välkända konto och nyckel som används av den äldre Azure Storage Emulator.

  • Kontonamn: devstoreaccount1
  • Kontonyckel: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Anpassade lagringskonton och nycklar

Azurite stöder anpassade lagringskontonamn och -nycklar genom att ange AZURITE_ACCOUNTS miljövariabeln i följande format: account1:key1[:key2];account2:key1[:key2];... .

Använd till exempel ett anpassat lagringskonto som har en nyckel:

set AZURITE_ACCOUNTS="account1:key1"
export AZURITE_ACCOUNTS="account1:key1"

Eller använd flera lagringskonton med två nycklar var:

set AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"
export AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"

Azurite uppdaterar som standard anpassade kontonamn och nycklar från miljövariabeln. Med den här funktionen kan du rotera kontonyckeln dynamiskt eller lägga till nya lagringskonton utan att starta om Azurite.

Obs!

Standardkontot devstoreaccount1 för lagring inaktiveras när du anger anpassade lagringskonton.

Anslutningssträngar

Det enklaste sättet att ansluta till Azurite från programmet är att konfigurera en anslutningssträng i programmets konfigurationsfil som refererar till genvägen UseDevekommandoStorage=true. Här är ett exempel på en anslutningssträng i en app.config fil:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

HTTP-anslutningssträngar

Du kan överföra följande anslutningssträngar till Azure SDKs eller verktyg, som Azure CLI 2.0 eller Storage Explorer.

Den fullständiga anslutningssträngen är:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

Om du bara vill ansluta till blob-tjänsten är anslutningssträngen:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;

Om du bara vill ansluta till kötjänsten är anslutningssträngen:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

HTTPS-anslutningssträngar

Den fullständiga HTTPS-anslutningssträngen är:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;

Om du bara vill använda blob-tjänsten är HTTPS-anslutningssträngen:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;

Om du bara vill använda kötjänsten är HTTPS-anslutningssträngen:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;

Om du använde dotnet dev-certs för att generera ditt själv signerade certifikat använder du följande anslutningssträng.

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://localhost:10000/devstoreaccount1;QueueEndpoint=https://localhost:10001/devstoreaccount1;

Uppdatera anslutningssträngen när anpassade lagringskonton och nycklar används.

Mer information finns i Konfigurera Azure Storage anslutningssträngar.

Azure SDKs

Om du vill använda azurite med Azure-SDKsanvänder du alternativen OAuth och HTTPS:

azurite --oauth basic --cert certname.pem --key certname-key.pem

Blob-Storage för Azure

Du kan sedan instansiera en BlobContainerClient, BlobServiceClient eller BlobClient.

// With container URL and DefaultAzureCredential
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new BlobContainerClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;", "container-name"
  );

// With account name and key
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Azure-Storage

Du kan även instansiera en QueueClient eller QueueServiceClient.

// With queue URL and DefaultAzureCredential
var client = new QueueClient(
    new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new QueueClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;", "queue-name"
  );

// With account name and key
var client = new QueueClient(
    new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Microsoft Azure Storage Explorer

Du kan Storage Explorer data som lagras i Azurite.

Anslut till Azurite med HTTP

Anslut Storage Explorer azurite i Storage Explorer så här:

  1. Välj ikonen Hantera konton
  2. Välj Lägg till ett konto
  3. Välj Bifoga till en lokal emulator
  4. Välj Nästa
  5. Redigera fältet Visningsnamn till ett eget namn
  6. Välj Nästa igen
  7. Välj Anslut

Anslut till Azurite med HTTPS

Som standard Storage Explorer inte en HTTPS-slutpunkt som använder ett själv signerat certifikat. Om du kör Azurite med HTTPS använder du förmodligen ett själv signerat certifikat. I Storage Explorer du importera SSL-certifikat via dialogrutan Redigera - SSL-certifikatImport Certificates.

Importera certifikat till Storage Explorer
  1. Hitta certifikatet på den lokala datorn.
  2. I Storage Explorer du till Redigera - SSL-certifikatImportera certifikat och importera ditt certifikat.

Om du inte importerar ett certifikat får du ett felmeddelande:

unable to verify the first certificate eller self signed certificate in chain

Lägga till Azurite via HTTPS-anslutningssträng

Följ dessa steg om du vill lägga till Azurite HTTPS på Storage Explorer:

  1. Välj Växla Utforskaren
  2. Välj Lokal bifogad
  3. Högerklicka på Konton Storage välj välj Anslut vill Azure Storage.
  4. Välj Använd en anslutningssträng
  5. Välj Nästa.
  6. Ange ett värde i fältet Visningsnamn.
  7. Ange HTTPS-anslutningssträngen från föregående avsnitt i det här dokumentet
  8. Välj Nästa
  9. Välj Anslut

Arbetsytestruktur

Följande filer och mappar kan skapas på arbetsytans plats när du initierar Azurite.

  • __blobstorage__ - Katalog som innehåller Azurite-blobtjänsten beständiga binära data
  • __queuestorage__ - Katalog som innehåller azuritekötjänsten beständiga binära data
  • __azurite_db_blob__.json - Azurite blob service metadata file
  • __azurite_db_blob_extent__.json - Azurite blob service extent metadata file
  • __azurite_db_queue__.json - Azurite-kötjänstmetadatafil
  • __azurite_db_queue_extent__.json - Azurite-metadatafil för kötjänsters omfattning

Rensa azurite genom att ta bort filer och mappar ovanför och starta om emulatorn.

Skillnader mellan azurite och Azure Storage

Det finns funktionella skillnader mellan en lokal instans av Azurite och ett Azure Storage-konto i molnet.

Slutpunkt och anslutnings-URL

Tjänstslutpunkterna för Azurite skiljer sig från slutpunkterna i ett Azure Storage konto. Den lokala datorn använder inte namnmatchning för domäner, vilket kräver att Azurite-slutpunkter är lokala adresser.

När du adresserar en resurs i Azure Storage-konto är kontonamnet en del av URI-värdnamnet. Den resurs som hanteras är en del av URI-sökvägen:

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

Följande URI är 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 namnmatchning ä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 Azurite:

http://<local-machine-address>:<port>/<account-name>/<resource-path>

Följande adress kan användas för att komma åt en blob i Azurite:

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

Skalning och prestanda

Azurite stöder inte ett stort antal anslutna klienter. Det finns ingen prestandagaranti. Azurite är avsett för utveckling och teständamål.

Felhantering

Azurite är justerat mot Azure Storage logik för felhantering, men det finns skillnader. Till exempel kan felmeddelanden vara annorlunda, medan felstatuskoder justeras.

RA-GRS

Azurite stöder geo-redundant replikering (RA-GRS) med läsåtkomst. För lagringsresurser kan du komma åt den sekundära platsen genom att -secondary lägga till kontonamnet. Följande adress kan till exempel användas för att komma åt en blob med skrivskydds secondary i Azurite:

http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt

Stöd för tabeller

Stöd för tabeller i Azurite är för närvarande i förhandsversion. Mer information finns i azurite V3-tabellprojektet.

Stöd för beständiga funktioner kräver tabeller.

Viktigt

Azurite-stöd för tabell-Storage är för närvarande i FÖRHANDSVERSION. Se kompletterande användningsvillkor för förhandsversioner av Microsoft Azure för juridiska termer som gäller för Azure-funktioner som är beta, förhandsversioner eller ännu inte släppta till allmän tillgänglighet.

Azurite är öppen källkod

Bidrag och förslag för azurite är välkommen. Gå till azuritesidan GitHub projekt eller GitHub för milstolpar och arbetsobjekt som vi spårar för kommande funktioner och felkorrigeringar. Detaljerade arbetsobjekt spåras också i GitHub.

Nästa steg