Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma

Azurite açık kaynak öykünücüsü, bulut tabanlı uygulamalarınızı test için ücretsiz bir yerel ortam sağlar. Uygulamanızın yerel olarak çalışma biçiminden memnun olduğunuzda bulutta bir Azure Depolama hesabı kullanmaya geçin.

Azurite, JavaScript ile yazılmış ve yerel geliştirme için Azure Depolama hizmetinin benzetimini Node.js üzerinde çalışan basit bir depolama öykünücüsüdür. Blob, Kuyruk ve Tablo depolama hizmetlerini destekler ve Windows, Linux ve macOS'ta platformlar arası destek sağlar. Azurite'yi yükleme ve çalıştırma konusunda yardım için bkz. Azurite öykünücüsü yükleme ve çalıştırma.

Azurite ayrıca geliştiricilerin yerel bir depolama ortamında test çalıştırmasına olanak sağlayarak Azure'ın tümleştirme ve uçtan uca test için kritik öneme sahip davranışının benzetimsini yapma olanağı sunar. Azurite'yi otomatik test için kullanma hakkında daha fazla bilgi için bkz. Otomatikleştirilmiş testleri çalıştırmak için Azurite kullanma.

Azurite, Azure Depolama Öykünücüsünün yerini alır ve Azure Depolama API'lerinin en son sürümlerini destekleyecek şekilde güncelleştirilmeye devam eder.

Azurite ile Azure Depolama arasındaki farklar

Yerel bir Azurite örneği ile buluttaki bir Azure Depolama hesabı arasında işlevsel farklılıklar vardır.

Önemli

Azurite yalnızca Blob, Kuyruk ve Tablo depolama hizmetlerini destekler. Azure Dosyalar veya Azure Data Lake Storage 2. Nesil'i desteklemez, ancak Windows, Linux ve macOS'ta platformlar arası destek sağlar.

Uç nokta ve bağlantı URL'si

Azurite için hizmet uç noktaları, Azure Depolama hesabının uç noktalarından farklıdır. Yerel bilgisayar, Azurite uç noktalarının yerel adresler olmasını gerektiren etki alanı adı çözümlemesi yapmaz.

Azure Depolama hesabındaki bir kaynağı ele aldığınızda, hesap adı URI ana bilgisayar adının bir parçasıdır. Ele alınan kaynak, URI yolunun bir parçasıdır:

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

Aşağıdaki URI, Bir Azure Depolama hesabındaki blob için geçerli bir adrestir:

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

IP stili URL

Yerel bilgisayar etki alanı adlarını çözümlemediğinden, hesap adı ana bilgisayar adı yerine URI yolunun bir parçasıdır. Azurite'deki bir kaynak için aşağıdaki URI biçimini kullanın:

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

Azurite'de bir bloba erişmek için aşağıdaki adres kullanılabilir:

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

Üretim stili URL

İsteğe bağlı olarak, konak dosyanızı üretim stili URL'ye sahip bir hesaba erişecek şekilde değiştirebilirsiniz.

İlk olarak, konak dosyanıza bir veya daha fazla satır ekleyin. Örneğin:

127.0.0.1 account1.blob.localhost
127.0.0.1 account1.queue.localhost
127.0.0.1 account1.table.localhost

Ardından, özelleştirilmiş depolama hesaplarını ve anahtarlarını etkinleştirmek için ortam değişkenlerini ayarlayın:

set AZURITE_ACCOUNTS="account1:key1:key2"

Daha fazla hesap ekleyebilirsiniz. Azurite'ye bağlanma makalesinin Özel depolama hesapları ve anahtarları bölümüne bakın.

Azurite'i başlatın ve hesabınıza erişmek için özelleştirilmiş bir bağlantı dizesi kullanın. Aşağıdaki örnekte, bağlantı dizesi varsayılan bağlantı noktalarının kullanıldığını varsayar.

DefaultEndpointsProtocol=http;AccountName=account1;AccountKey=key1;BlobEndpoint=http://account1.blob.localhost:10000;QueueEndpoint=http://account1.queue.localhost:10001;TableEndpoint=http://account1.table.localhost:10002;

Azure Depolama Gezgini ile varsayılan hesaba bu şekilde erişemezsiniz. Depolama Gezgini'nin URL yoluna her zaman hesap adı ekleyip hatalara neden olduğu bir hata var.

Varsayılan olarak, Azurite'yi üretim stili url ile kullanırken hesap adı gibi http://devstoreaccount1.blob.localhost:10000/containertam etki alanı adında ana bilgisayar adı olmalıdır. gibi http://foo.bar.com:10000/devstoreaccount1/containerURL yolunda hesap adıyla üretim stili URL kullanmak için, Azurite'yi başlattığınızda parametresini kullandığınızdan --disableProductStyleUrl emin olun.

İstek Uri ana bilgisayarı olarak kullanıyorsanız host.docker.internal (Örneğin: http://host.docker.internal:10000/devstoreaccount1/container), Azurite, istek Uri yolundan hesap adını alır. Bu davranış, Azurite'yi başlatırken parametresini --disableProductStyleUrl kullanıp kullanmamanıza bakılmaksızın geçerlidir.

Ölçeklendirme ve performans

Azurite çok sayıda bağlı istemciyi desteklemez. Performans garantisi yoktur. Azurite geliştirme ve test amaçlıdır.

Hata işleme

Azurite, Azure Depolama hata işleme mantığıyla uyumlu olsa da farklılıklar vardır. Örneğin, hata durum kodları hizalanırken hata iletileri farklı olabilir.

RA-GRS

Azurite, okuma erişimli coğrafi olarak yedekli çoğaltmayı (RA-GRS) destekler. Depolama kaynakları için, hesap adına ekleyerek -secondary ikincil konuma erişin. Örneğin, Azurite'de salt okunur ikincil kullanarak bir bloba erişmek için aşağıdaki adres kullanılabilir:

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

Tablo desteği

Azurite'deki tablolar için destek şu anda önizleme aşamasındadır. Daha fazla bilgi için bkz . Azurite V3 Tablo projesi.

Dayanıklı işlevler için destek için tablolar gerekir.

Önemli

Tablo Depolama için Azurite desteği şu anda ÖNİzLEME aşamasındadır. Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azurite açık kaynaktır

Azurite için katkılar ve öneriler kabul edilir. Yaklaşan özellikler ve hata düzeltmeleri için izlediğimiz kilometre taşları ve iş öğeleri için Azurite GitHub proje sayfasına veya GitHub sorunlarına gidin. Ayrıntılı iş öğeleri GitHub'da da izlenir.

Çalışma alanı yapısı

Azurite başlatılırken çalışma alanı konumunda aşağıdaki dosya ve klasörler oluşturulabilir.

  • __blobstorage__ - Azurite blob hizmeti kalıcı ikili verileri içeren dizin
  • __queuestorage__ - Azurite kuyruk hizmeti kalıcı ikili verileri içeren dizin
  • __tablestorage__ - Azurite tablo hizmeti kalıcı ikili verileri içeren dizin
  • __azurite_db_blob__.json - Azurite blob hizmeti meta veri dosyası
  • __azurite_db_blob_extent__.json - Azurite blob hizmeti kapsam meta veri dosyası
  • __azurite_db_queue__.json - Azurite kuyruk hizmeti meta veri dosyası
  • __azurite_db_queue_extent__.json - Azurite kuyruk hizmeti kapsam meta veri dosyası
  • __azurite_db_table__.json - Azurite tablo hizmeti meta veri dosyası
  • __azurite_db_table_extent__.json - Azurite tablo hizmeti kapsam meta veri dosyası

Azurite'yi temizlemek için dosyaları ve klasörleri silin ve öykünücüyü yeniden başlatın.

Sonraki adımlar