Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.8k stars 320 forks source link

Issue in Storage account Gen 2 support in Azurite 3.6.0 #423

Open shedges opened 4 years ago

shedges commented 4 years ago

Which service(blob, file, queue, table) does this issue concern?

Blob

Which version of the Azurite was used?

3.6.0

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)

npm

What's the Node.js version?

What problem was encountered?

I want to test few blob operation. And my requirement is to use storage account of Gen 2 (ADLS Gen2 ). So I compiled Azurite of version 3.6.0 (Azurite V3 ) which provides support for a default storage account as General Storage Account V2 and associated features. I compiled Azurite and successfully start blob service. But when I check with Microsoft Azure Storage Explorer, it shows storage account of type Key (i.e. it is Gen 1 storage account). If I connect to Gen 2 storage account (created on Azure portal) then storage explorer show account of type Key, ADLS Gen2. Does this means Azurite still create Gen 1 storage account? Is there any other way to confirm?

Steps to reproduce the issue?

  1. Compile Azurite 3.6.0
  2. Start Azurite service
  3. Use Microsoft Azure storage Explorer to connect Azurite using connection string
  4. See Storage account type as Key. It should show Key, ADLS Gen2.

Have you found a mitigation/solution?

No.

Azurite_storage_acc_issue Azurite_storage_acc_issue
XiaoningLiu commented 4 years ago

I think ADLS Gen2 marks means you enables hihirical namesapce when create the storage account, right?

Storage explorer needs additional info to check about account level properties and types, Azurite doesn't provide an API for that, while it's not scope of Azurite either. @JasonYeMSFT Can you help confirm?

It's should no harm about how Storage Explorer displays. And welcome report to us anytime you found unexpected behaviors when you use Azurite.

JasonYeMSFT commented 4 years ago

"General purpose V2" is different from "Gen 2". An ADLS Gen2 storage account is storage account with hierarchical namespace(HNS) enabled while general purpose V2 is compared against general purpose V1. Azurite creates a general purpose v2 storage account without HNS enabled.

I don't remember Azurite supporting ADLS Gen2 storage account (aka. HNS storage accounts) and we don't have the support for it in Storage Explorer right now. Currently if you want to specifically test ADLS Gen 2 storage accounts you'll have to create one on Portal. If you know that there is a emulator service available for it, please let me know so we can prioritize it.

shedges commented 4 years ago

@JasonYeMSFT @XiaoningLiu Thanks for providing information that Azurite support general purpose V2 without HNS enabled. I was not aware that General Purpose V2 is different from ADLS Gen 2.

First let me gather all required functionality from HNS. Then will come back to you whether we need Azurite with HNS on priority or not.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

devlife commented 1 year ago

Seems related: https://github.com/Azure/Azurite/issues/553