Bagikan melalui


Menggunakan emulator Azurite untuk pengembangan Azure Storage lokal

Emulator sumber terbuka Azurite menyediakan lingkungan lokal gratis untuk menguji aplikasi berbasis cloud Anda. Saat Anda puas dengan cara kerja aplikasi Anda secara lokal, beralihlah menggunakan akun Azure Storage di cloud.

Azurite adalah emulator penyimpanan ringan yang ditulis dalam JavaScript dan berjalan pada Node.js yang mensimulasikan layanan Azure Storage untuk pengembangan lokal. Ini mendukung layanan penyimpanan Blob, Antrean, dan Tabel dan menyediakan dukungan lintas platform di Windows, Linux, dan macOS. Untuk bantuan dalam menginstal dan menjalankan Azurite, lihat Menginstal dan menjalankan emulator Azurite.

Azurite juga memungkinkan pengembang untuk menjalankan pengujian terhadap lingkungan penyimpanan lokal, mensimulasikan perilaku Azure, yang sangat penting untuk integrasi dan pengujian end-to-end. Untuk membaca selengkapnya tentang cara menggunakan Azurite untuk pengujian otomatis, lihat Menggunakan Azurite untuk menjalankan pengujian otomatis.

Azurite menggantikan Emulator Azure Storage, dan terus diperbarui untuk mendukung versi terbaru API Azure Storage.

Perbedaan antara Azurite dan Azure Storage

Ada perbedaan fungsi antara instans lokal Azurite dan akun Azure Storage di cloud.

Penting

Azurite hanya mendukung layanan penyimpanan Blob, Antrean, dan Tabel. Ini tidak mendukung Azure Files atau Azure Data Lake Storage Gen2, tetapi menyediakan dukungan lintas platform di Windows, Linux, dan macOS.

TITIK akhir dan URL koneksi

Titik akhir layanan untuk Azurite berbeda dari titik akhir akun Azure Storage. Komputer lokal tidak melakukan resolusi nama domain, sehingga titik akhir Azurite harus menggunakan alamat lokal.

Saat Anda menangani sumber daya di akun Azure Storage, nama akun adalah bagian dari nama host URI. Sumber daya yang ditangani adalah bagian dari jalur URI:

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

URI berikut adalah alamat yang valid untuk blob di akun Azure Storage:

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

URL dengan format IP

Karena komputer lokal tidak menyelesaikan nama domain, nama akun adalah bagian dari jalur URI alih-alih nama host. Gunakan format URI berikut untuk sumber daya di Azurite:

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

Alamat berikut mungkin digunakan untuk mengakses blob di Azurite:

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

URL bergaya produksi

Secara opsional, Anda dapat memodifikasi file host untuk mengakses akun dengan URL gaya produksi .

Pertama, tambahkan satu atau beberapa baris ke file host Anda. Contohnya:

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

Selanjutnya, atur variabel lingkungan untuk mengaktifkan akun penyimpanan dan kunci yang disesuaikan:

set AZURITE_ACCOUNTS="account1:key1:key2"

Anda dapat menambahkan lebih banyak akun. Lihat bagian Akun penyimpanan kustom dan kunci dari artikel Sambungkan ke Azurite .

Mulai Azurite dan gunakan string koneksi yang disesuaikan untuk mengakses akun Anda. Dalam contoh berikut, string koneksi mengasumsikan bahwa port default digunakan.

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

Jangan akses akun default dengan cara ini dengan Azure Storage Explorer. Ada bug bahwa Storage Explorer selalu menambahkan nama akun di jalur URL, menyebabkan kegagalan.

Secara bawaan, saat menggunakan Azurite dengan URL gaya produksi, nama akun harus menjadi nama host dalam nama domain yang terkualifikasi penuh seperti http://devstoreaccount1.blob.localhost:10000/container. Untuk menggunakan URL gaya produksi dengan nama akun di jalur URL seperti http://foo.bar.com:10000/devstoreaccount1/container, pastikan untuk menggunakan parameter --disableProductStyleUrl ketika memulai Azurite.

Jika Anda menggunakan host.docker.internal sebagai host Uri permintaan (Misalnya: http://host.docker.internal:10000/devstoreaccount1/container), Azurite mendapatkan nama akun dari jalur Uri permintaan. Perilaku ini berlaku terlepas dari apakah Anda menggunakan --disableProductStyleUrl parameter saat Memulai Azurite.

Penskalaan dan performa

Azurite tidak mendukung sejumlah besar klien yang terhubung. Tidak ada jaminan performa. Azurite ditujukan untuk tujuan pengembangan dan pengujian.

Penanganan kesalahan

Azurite selaras dengan logika penanganan kesalahan Azure Storage, tetapi ada perbedaan. Misalnya, pesan kesalahan mungkin berbeda, sementara kode status kesalahan selaras.

RA-GRS

Azurite mendukung replikasi akses baca geo-redundan (RA-GRS). Untuk sumber daya penyimpanan, akses lokasi sekunder dengan menambahkan -secondary ke nama akun. Misalnya, alamat berikut dapat digunakan untuk mengakses blob menggunakan sekunder baca-saja di Azurite:

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

Bantuan tabel

Dukungan untuk tabel di Azurite saat ini sedang dalam tahap pratinjau. Untuk informasi selengkapnya, lihat proyek Tabel Azurite V3 .

Dukungan untuk fungsi yang berkelanjutan memerlukan tabel.

Penting

Dukungan Azurite untuk Table Storage saat ini sedang dalam tahap PRATINJAU. Lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure untuk persyaratan hukum yang berlaku pada fitur Azure dalam versi beta, pratinjau, atau belum dirilis secara umum.

Azurite adalah sumber terbuka

Kontribusi dan saran untuk Azurite dipersilakan. Buka halaman proyek GitHub Azurite atau masalah GitHub untuk tonggak pencapaian dan item kerja yang kami lacak untuk fitur dan perbaikan bug yang akan datang. Item kerja terperinci juga dilacak di GitHub.

Struktur ruang kerja

File dan folder berikut mungkin dibuat di lokasi ruang kerja saat menginisialisasi Azurite.

  • __blobstorage__ - Direktori yang berisi layanan blob Azurite menyimpan data biner
  • __queuestorage__ - Direktori yang berisi data biner persisten dari layanan antrean Azurite
  • __tablestorage__ - Direktori yang berisi layanan tabel Azurite menyimpan data biner
  • __azurite_db_blob__.json - File metadata layanan blob Azurite
  • __azurite_db_blob_extent__.json - File metadata tingkat layanan blob Azurite
  • __azurite_db_queue__.json - File metadata layanan antrean Azurite
  • __azurite_db_queue_extent__.json - File metadata ekstensi layanan antrean Azurite
  • __azurite_db_table__.json - File metadata layanan tabel Azurite
  • __azurite_db_table_extent__.json - File metadata cakupan layanan tabel Azurite

Untuk membersihkan Azurite, hapus file dan folder dan mulai ulang emulator.

Langkah berikutnya