استخدام محاكي Azurite لتطوير Azure Storage المحلي

يوفر محاكي Azurite مفتوح المصدر بيئة محلية مجانية لاختبار كائن Azure الثنائي كبير الحجم الخاص بك وتخزين قائمة الانتظار وتطبيقات تخزين الجدول. عندما تكون راضيًا عن كيفية عمل التطبيق محليًا، قم بالتبديل إلى استخدام حساب تخزين Azure في السحابة. يدعم المحاكي عبر النظام الأساسي أنظمة التشغيل Windows و Linux و macOS.

يحل Azurite محل Azure Storage Emulator، ويستمر تحديثه لدعم أحدث إصدارات واجهات برمجة تطبيقات Azure Storage.

يوضح لك هذا الفيديو كيفية تثبيت وتشغيل محاكي Azurite.

يتم أيضا وصف الخطوات الواردة في الفيديو في الأقسام التالية. حدد أيًا من علامات التبويب هذه.

تثبيت Azurite

يتوفر Azurite تلقائيًا باستخدام Visual Studio 2022 . يتم تحديث الملف التنفيذي Azurite كجزء من إصدارات الإصدار الجديد من Visual Studio. إذا كنت تقوم بتشغيل إصدار سابق من Visual Studio، يمكنك تثبيت Azurite باستخدام إما Node مدير الحِزَم (npm) أو DockerHub أو عن طريق استنساخ مستودع Azurite GitHub.

تشغيل Azurite

لاستخدام Azurite مع معظم أنواع المشاريع في Visual Studio، تحتاج أولا إلى تشغيل Azurite القابل للتنفيذ. بمجرد تشغيل الملف التنفيذي، يستمع Azurite لطلبات الاتصال من التطبيق. لمعرفة المزيد، راجع تشغيل Azurite من سطر الأوامر.

بالنسبة لمشاريع Azure Functions ومشاريع ASP.NET ، يمكنك اختيار تكوين المشروع لبدء تشغيل Azurite تلقائيا. يتم إجراء هذا التكوين أثناء إعداد المشروع. بينما يبدأ تكوين المشروع هذا Azurite تلقائيا، لا يعرض Visual Studio خيارات تكوين Azurite التفصيلية. لتخصيص خيارات تكوين Azurite التفصيلية، قم بتشغيل Azurite القابل للتنفيذ قبل تشغيل Visual Studio.

لمعرفة المزيد حول تكوين مشاريع Azure Functions ومشاريع ASP.NET لبدء Azurite تلقائيا، راجع الإرشادات التالية:

موقع ملف Azurite القابل للتنفيذ

يوضح الجدول التالي موقع Azurite القابل للتنفيذ لإصدارات مختلفة من Visual Studio الذي يعمل على جهاز Windows:

إصدار Visual Studio موقع Azurite القابل للتنفيذ
Visual Studio Community 2022 C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Professional 2022 C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Enterprise 2022 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator

تشغيل Azurite من سطر الأوامر

يمكنك العثور على ملف Azurite القابل للتنفيذ في مجلد الملحقات لتثبيت Visual Studio الخاص بك، كما هو مفصل في جدول موقع ملف Azurite القابل للتنفيذ.

انتقل إلى الموقع المناسب وابدأ azurite.exe. بعد تشغيل الملف القابل للتنفيذ، يستمع Azurite للاتصالات.

Azurite command-line output

لمعرفة المزيد حول خيارات سطر الأوامر المتوفرة لتكوين Azurite، راجع خيارات سطر الأوامر.

تشغيل Azurite من مشروع وظائف Azure

في Visual Studio 2022، قم بإنشاء مشروع وظائف Azure. أثناء تعيين خيارات المشروع، ضع علامة على المربع المسمى استخدام Azurite لحساب تخزين وقت التشغيل.

A screenshot showing how to set Azurite to be the runtime storage account for an Azure Functions project.

بعد إنشاء المشروع، يبدأ Azurite تلقائيًا في التشغيل. موقع ملف Azurite القابل للتنفيذ مفصل في جدول موقع ملف Azurite القابل للتنفيذ. يبدو الإخراج مشابها للقطة الشاشة التالية:

A screenshot showing output after setting Azurite to be the runtime storage account for an Azure Functions project.

يمكن تغيير خيار التكوين هذا لاحقا عن طريق تعديل تبعيات الخدمات الاتصال للمشروع.

تشغيل Azurite من مشروع ASP.NET

في Visual Studio 2022، قم بإنشاء مشروع تطبيق ويب ASP.NET Core. ثم افتح مربع حوار الخدمات المتصلة، وحدد إضافة تبعية خدمة، ثم حدد محاكي تخزين Azurite.

A screenshot showing how to add Azurite as a dependency to an ASP.NET project.

في مربع حوار تكوين محاكي Azurite للتخزين، قم بتعيين حقل اسم سلسلة الاتصال إلى StorageConnectionString، ثم حدد إنهاء.

A screenshot showing how to configure a connection string to use Azurite with an ASP.NET project.

عند اكتمال التكوين، حدد Close، ويبدأ محاكي Azurite تلقائيا. موقع ملف Azurite القابل للتنفيذ مفصل في جدول موقع ملف Azurite القابل للتنفيذ. يبدو الإخراج مشابها للقطة الشاشة التالية:

A screenshot showing output after connecting an ASP.NET project to the Azurite emulator.

يمكن تغيير خيار التكوين هذا لاحقا عن طريق تعديل تبعيات الخدمات الاتصال للمشروع.

خيارات سطر الأوامر

توضح هذه الخيارات بالتفصيل رموز تبديل سطر الأوامر المتاحة عند بدء تشغيل Azurite.

التعليمات

اختياري - احصل على تعليمات سطر الأوامر باستخدام رمز التبديل -h «أو» --help.

azurite -h
azurite --help

مضيف الاستماع

اختياري - بشكل افتراضي، يستمع Azurite إلى 127.0.0.1 كخادم محلي. استخدم رمز--blobHost التبديل لتعيين العنوان لمتطلباتك.

قبول الطلبات على الجهاز المحلي فقط:

azurite --blobHost 127.0.0.1

السماح بالطلبات عن بُعد:

azurite --blobHost 0.0.0.0

تنبيه

قد يؤدي السماح بالطلبات عن بعد إلى جعل نظامك عرضة للاختراق الخارجي.

تكوين منفذ الاستماع

اختياري - بشكل افتراضي، يستمع Azurite لخدمة Blob على المنفذ 10000. استخدم رمز التبديل--blobPort لتحديد منفذ الاستماع الذي تحتاجه.

إشعار

بعد استخدام منفذ مخصص، تحتاج إلى تحديث سلسلة الاتصال أو التكوين الملائم في أدوات تخزين Azure أو مجموعات تطوير البرامج.

تخصيص منفذ الاستماع لخدمة كائن ثنائي كبير الحجم:

azurite --blobPort 8888

اسمح للنظام بتحديد أي منفذ متاح تلقائيًا:

azurite --blobPort 0

يتم عرض المنفذ قيد الاستخدام أثناء بدء تشغيل Azurite.

مسار مساحة العمل

اختياري - يقوم Azurite بتخزين البيانات على القرص المحلي أثناء التنفيذ. -l استخدم رمز التبديل «أو»--locationلتحديد المسار كموقع مساحة العمل. بشكل افتراضي، يتم استخدام دليل عمل العملية الحالية. لاحظ الحرف الصغير "l".

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

سجل الوصول

اختياري - بشكل افتراضي، يتم عرض سجل الوصول في نافذة وحدة التحكم. قم بتعطيل عرض سجل الوصول باستخدام -s رمز التبديل «أو» --silent.

azurite -s
azurite --silent

سجل تتبع الأخطاء

اختياري - يتضمن سجل تتبع الأخطاء معلومات مفصلة عن كل طلب وتتبع مكدس الاستثناءات. تمكين سجل تتبع الأخطاء عن طريق توفير مسار ملف محلي صالح -d لرمز التبديل--debug «أو».

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

وضع عدم التقييد

اختياري - بشكل افتراضي، يطبق Azurite وضع مقيد لحظر عناوين الطلبات والمعلمات غير المدعومة. قم بتعطيل وضع مقيد باستخدام رمز التبديل -L «أو»--loose. لاحظ الحرف الكبير "L".

azurite -L
azurite --loose

إصدار

اختياري - عرض رقم إصدار Azurite المثبت باستخدام رمز التبديل-v «أو»--version.

azurite -v
azurite --version

تكوين الشهادة (HTTPS)

اختياري - بشكل افتراضي، يستخدم Azurite بروتوكول HTTP. يمكنك تمكين وضع HTTPS من خلال توفير مسار إلى ملف شهادة البريد المحسن للخصوصية (.pem) أو تبادل المعلومات الشخصية (.pfx) إلى --cert مفتاح التبديل. HTTPS مطلوب للاتصال ب Azurite باستخدام مصادقة OAuth.

عند --cert توفيره لملف PEM، يجب عليك توفير رمز تبديل مطابق --key.

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

عند --cert توفيره لملف PFX، يجب عليك توفير رمز تبديل مطابق --pwd.

azurite --cert path/server.pfx --pwd pfxpassword
إعداد HTTPS

للحصول على معلومات مفصلة حول إنشاء ملفات PEM وPFX، راجع إعداد HTTPS.

تكوين OAuth

اختياري - تمكين مصادقة OAuth لـ Azurite باستخدام رمز التبديل--oauth.

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

إشعار

يتطلب OAuth نقطة نهاية HTTPS. تأكد من تمكين HTTPS من خلال توفير --cert رمز تبديل آخر متطابق --oauth.

يدعم Azurite المصادقة الأساسية عن طريق تحديد المعلمة basic لرمز التبديل--oauth. تقوم Azurite بإجراء المصادقة الأساسية، مثل التحقق من صحة الرمز المميز للحامل الوارد، والتحقق من المصدر والجمهور وانتهاء الصلاحية. لا تتحقق Azurite من توقيع الرمز المميز أو الأذونات. لمعرفة المزيد حول التخويل، راجع التخويل للأدوات وSDKs.

تخطي التحقق من إصدار واجهة برمجة التطبيقات

اختياري - عند بدء التشغيل، يتحقق Azurite من أن إصدار واجهة برمجة التطبيقات المطلوب صالح أم لا. يتخطى الأمر التالي التحقق من إصدار واجهة برمجة التطبيقات:

azurite --skipApiVersionCheck

تعطيل عنوان URL لنمط الإنتاج

اختياري. عند استخدام اسم المجال المؤهل بالكامل بدلا من IP في مضيف طلب Uri، يقوم Azurite افتراضيا بتحليل اسم حساب التخزين من مضيف طلب URI. يمكنك فرض تحليل اسم حساب التخزين من مسار طلب URI باستخدام --disableProductStyleUrl:

azurite --disableProductStyleUrl

استمرار في الذاكرة

اختياري. بشكل افتراضي، يتم استمرار البيانات الوصفية للكائن الثنائي كبير الحجم وقائمة الانتظار على القرص ويستمر المحتوى إلى حد الملفات. يستمر تخزين الجدول في كافة البيانات على القرص. يمكنك تعطيل استمرار أي بيانات على القرص وتخزين البيانات في الذاكرة فقط. في سيناريو استمرار الذاكرة، إذا تم إنهاء عملية Azurite، يتم فقدان جميع البيانات. يمكن تجاوز سلوك الاستمرار الافتراضي باستخدام الخيار التالي:

azurite --inMemoryPersistence

يتم رفض هذا الإعداد عند تمكين تنفيذ بيانات التعريف المستندة إلى SQL (عبر AZURITE_DB)، أو عند --location تحديد الخيار.

حد ذاكرة المدى

اختياري. بشكل افتراضي، يقتصر مخزن المدى داخل الذاكرة (لمحتوى الكائن الثنائي كبير الحجم وقائمة الانتظار) على 50٪ من إجمالي الذاكرة على الجهاز المضيف. يتم تقييم الإجمالي باستخدام os.totalmem(). يمكن تجاوز هذا الحد باستخدام الخيار التالي:

azurite --extentMemoryLimit <megabytes>

لا يوجد أي قيود على القيمة المحددة لهذا الخيار، ولكن قد يتم استخدام الذاكرة الظاهرية إذا تجاوز الحد مقدار الذاكرة الفعلية المتوفرة كما يوفره نظام التشغيل. قد يؤدي الحد العالي في النهاية إلى أخطاء نفاد الذاكرة أو انخفاض الأداء. يتم رفض هذا الخيار عندما --inMemoryPersistence لا يتم تحديده.

لمعرفة المزيد، راجع استخدام التخزين في الذاكرة.

الاتصال إلى Azurite باستخدام SDKs والأدوات

يمكنك الاتصال ب Azurite من Azure Storage SDKs، أو أدوات مثل Azure Storage Explorer. المصادقة مطلوبة، ويدعم Azurite التخويل باستخدام OAuth والمفتاح المشترك وتوقيعات الوصول المشترك (SAS). كما يدعم Azurite أيضًا الوصول المجهول إلى الحاويات العامة.

لمعرفة المزيد حول استخدام Azurite مع Azure SDKs، راجع Azure SDKs.

مفتاح وحساب التخزين المعروفين

يقبل Azurite نفس الحساب والمفتاح المعروفين اللذين يستخدمهما محاكي تخزين Azure القديم.

  • اسم الحساب: devstoreaccount1
  • ‏‏مفتاح الحساب: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

حسابات ومفاتيح التخزين المخصصة

يدعم Azurite أسماء حسابات التخزين المخصصة ومفاتيحها عن طريق إعداد AZURITE_ACCOUNTS متغير البيئة بالتنسيق التالي: account1:key1[:key2];account2:key1[:key2];....

على سبيل المثال، استخدم حساب تخزين مخصص يحتوي على مفتاح واحد:

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

إشعار

يجب أن تكون مفاتيح الحساب سلسلة ترميز base64.

أو استخدم حسابات تخزين متعددة بمفتاحين لكلٍ منهم:

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

يحدّث Azurite أسماء الحسابات والمفاتيح المخصصة من متغير البيئة كل دقيقة بشكل افتراضي. باستخدام هذه الميزة، يمكنك تدوير مفتاح الحساب ديناميكيًا، أو إضافة حسابات تخزين جديدة دون إعادة تشغيل Azurite.

إشعار

يتم تعطيل حساب التخزين الافتراضي devstoreaccount1 عندما تقوم بضبط حسابات تخزين مخصصة. إذا كنت ترغب في متابعة الاستخدام devstoreaccount1 بعد تمكين حسابات التخزين المخصصة، تحتاج إلى إضافته إلى قائمة الحسابات والمفاتيح المخصصة في AZURITE_ACCOUNTS متغير البيئة.

يجب أن تكون مفاتيح الحساب سلسلة ترميز base64.

سلسلة الاتصال

أسهل طريقة للاتصال بـAzurite من التطبيق الخاص بك هي تكوين سلسلة اتصال في ملف تكوين التطبيق الخاص بك الذي يشير إلى الاختصار UseDevelopmentStorage=true. في ما يلي مثال على سلسلة اتصال في ملف تكوين التطبيق:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>
سلاسل اتصال HTTP

يمكنك تمرير سلاسل الاتصال التالية إلى مجموعات تطوير برامج Azure أو أدواتها، مثل Azure CLI 2.0 أو مستكشف التخزين.

سلسلة الاتصال الكاملة هي:

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;

للاتصال بخدمة معينة، يمكنك استخدام سلسلة الاتصال التالية:

للاتصال ب Blob Storage فقط، سلسلة الاتصال هو:

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

سلاسل اتصال HTTPS

سلسلة اتصال HTTPS الكاملة هي:

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

للاتصال بخدمة معينة، يمكنك استخدام سلسلة الاتصال التالية:

لاستخدام خدمة كائن ثنائي كبير الحجم فقط، تكون سلسلة اتصال HTTPS هي:

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

وفي حال الاستخدام dotnet dev-certs لإنشاء شهادات موقعة ذاتيًا، فاستخدم سلسلة الاتصال التالية.

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

قم بتحديث سلسلة الاتصال عند استخدام حسابات ومفاتيح التخزين المخصصة.

ولمزيد من المعلومات، راجع تكوين سلاسل اتصال تخزين Azure .

Azure SDKs

للاتصال ب Azurite باستخدام Azure SDKs، اتبع الخطوات التالية:

  • تمكين مصادقة OAuth ل Azurite عبر --oauth مفتاح التبديل. لمعرفة المزيد، راجع تكوين OAuth.
  • قم بتمكين HTTPS باستخدام شهادة موقعة ذاتيا عبر --cert الخيارات و --key/--pwd . لمعرفة المزيد حول إنشاء الشهادات، راجع تكوين الشهادة (HTTPS) وإعداد HTTPS.

بمجرد أن تكون الشهادات في مكانها، ابدأ Azurite بخيارات سطر الأوامر التالية:

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

استبدل cert-name.pem و certname-key.pem بأسماء الشهادة والملفات الرئيسية. إذا كنت تستخدم شهادة PFX، فاستخدم --pwd الخيار بدلا من --key الخيار.

للتفاعل مع موارد Blob Storage، يمكنك إنشاء BlobContainerClientمثيل أو BlobServiceClientأو BlobClient.

توضح الأمثلة التالية كيفية تخويل كائن BlobContainerClient باستخدام ثلاث آليات تخويل مختلفة: DefaultAzureCredential، سلسلة الاتصال، والمفتاح المشترك. DefaultAzureCredential يوفر آلية مصادقة تستند إلى الرمز المميز للحامل، ويستخدم سلسلة من أنواع بيانات الاعتماد المستخدمة للمصادقة. بمجرد المصادقة، توفر بيانات الاعتماد هذه رمز OAuth المميز كجزء من إنشاء مثيل العميل. لمعرفة المزيد، راجع مرجع الفئة DefaultAzureCredential.

// 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;", "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==")
  );

Microsoft Azure Storage Explorer

يمكنك استخدام مستكشف التخزين لعرض البيانات المخزنة في Azurite.

الاتصال بـAzurite باستخدام HTTP

في مستكشف التخزين، اتصل بـAzurite باتباع الخطوات التالية:

  1. حدد رمز إدارة الحسابات
  2. حدد إضافة حساب
  3. حدد إرفاق محاكي محلي
  4. حدد التالي
  5. تحرير حقل الاسم المعروض إلى اسم من اختيارك
  6. حدد التالي مرةً أخرى
  7. حدد اتصال
الاتصال بـAzurite باستخدام HTTPS

بشكل افتراضي، لا يفتح Storage Explorer نقطة نهاية HTTPS تستخدم شهادة موقعة ذاتيا. إذا كنت تقوم بتشغيل Azurite باستخدام HTTPS، فمن المحتمل أنك تستخدم شهادات موقعة ذاتيًا. في مستكشف التخزين، قم باستيراد شهادات SSL عبر مربع حوار تحرير> -شهادات SSL ->استيراد الشهادات.

استيراد شهادة رقمية إلى مستكشف التخزين
  1. ابحث عن الشهادة على جهازك المحلي.
  2. في مستكشف التخزين، لكي تستورد شهادتك انتقل إلى تحرير ->شهادات SSL ->استيراد الشهادات.

إذا لم تقم باستيراد شهادة، فستحصل على خطأ:

unable to verify the first certificate أو self signed certificate in chain

إضافة Azurite عبر سلسلة اتصال HTTPS

اتبع الخطوات التالية لإضافة Azurite HTTPS إلى مستكشف التخزين:

  1. حدد مستكشف التبديل
  2. تحديد محلي ومرفق
  3. انقر بزر الماوس الأيمن فوق ⁧⁩حسابات التخزين⁧⁩ وحدد ⁧⁩الاتصال بموقع تخزين Azure⁧⁩.
  4. حدد استخدام سلسلة الاتصال
  5. حدد التالي.
  6. أدخل قيمة في حقل الاسم المعروض.
  7. أدخل سلسلة اتصال HTTPS من القسم السابق من هذا المستند
  8. حدد التالي
  9. حدد اتصال

بنية مساحة العمل

قد يتم إنشاء الملفات والمجلدات التالية في موقع مساحة العمل عند تهيئة Azurite.

  • __blobstorage__ - استمرت البيانات الثنائية في الدليل الذي يحتوي على خدمة Azurite كائن ثنائي كبير الحجم
  • __queuestorage__ - استمرت البيانات الثنائية في الدليل الذي يحتوي على خدمة قائمة انتظار Azurite
  • __tablestorage__ - الدليل الذي يحتوي على البيانات الثنائية المستمرة بخدمة جدول Azurite
  • __azurite_db_blob__.json - ملف بيانات التعريف لخدمة Azurite كائن ثنائي كبير الحجم
  • __azurite_db_blob_extent__.json - ملف بيانات التعريف لامتداد خدمة Azurite كائن ثنائي كبير الحجم
  • __azurite_db_queue__.json - ملف بيانات التعريف لخدمة قائمة انتظار Azurite
  • __azurite_db_queue_extent__.json - ملف بيانات تعريف لامتداد خدمة قائمة انتظار Azurite
  • __azurite_db_table__.json - ملف بيانات التعريف لخدمة جدول Azurite
  • __azurite_db_table_extent__.json - ملف بيانات التعريف لامتداد خدمة جدول Azurite

لتنظيف Azurite، احذف الملفات والمجلدات أعلاه وأعد تشغيل المحاكي.

الاختلافات بين Azurite وتخزين Azure

توجد عدة اختلافات وظيفية بين مثيل Azurite المحلي وحساب تخزين Azure في السحابة.

عنوان URL لنقطة النهاية والاتصال

تختلف نقاط نهاية الخدمة الخاصة بـAzurite عن نقاط النهاية الخاصة بحساب تخزين Azure. لا يقوم الكمبيوتر المحلي بتحليل اسم المجال، مما يتطلب أن تكون نقاط النهاية الخاصة بـAzurite عناوين محلية.

عندما تقوم بمعالجة مورد في حساب تخزين Azure يكون اسم الحساب جزءًا من اسم مضيف URI. المورد الذي تتم معالجته هو جزء من مسار URI:

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

عنوان URI التالي هو عنوان صالح لكائن ثنائي كبير الحجم في حساب تخزين Azure:

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

عنوان URL على نمط IP

نظرًا لأن الكمبيوتر المحلي لا يحل أسماء المجالات، فإن اسم الحساب جزء من مسار URI بدلاً من اسم المضيف. استخدم تنسيق URI التالي لمورد في Azurite:

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

يمكن استخدام العنوان التالي للوصول إلى كائن ثنائي كبير الحجم في Azurite:

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

عنوان URL على نمط التشغيل

اختياريًا، يمكنك تعديل ملف المضيفين للوصول إلى حساب باستخدام عنوان URL لنمط التشغيل.

أولاً، أضف سطرًا واحدًا أو أكثر إلى ملف المضيفين. على سبيل المثال:

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

بعد ذلك، قم بتعيين متغيرات البيئة لتمكين حسابات ومفاتيح التخزين المخصصة:

set AZURITE_ACCOUNTS="account1:key1:key2"

يمكنك إضافة المزيد من الحسابات. راجع قسم حسابات التخزين المخصصة والمفاتيح في هذه المقالة.

ابدأ تشغيل Azurite واستخدم سلسلة اتصال مخصصة للوصول إلى حسابك. في المثال التالي، يفترض سلسلة الاتصال استخدام المنافذ الافتراضية.

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 Storage Explorer. هناك خطأ في أن Storage Explorer يقوم دائما بإضافة اسم الحساب في مسار URL، مما يتسبب في حدوث حالات فشل.

بشكل افتراضي، عند استخدام Azurite مع عنوان URL لنمط الإنتاج، يجب أن يكون اسم الحساب هو اسم المضيف في اسم المجال المؤهل بالكامل مثل http://devstoreaccount1.blob.localhost:10000/container. لاستخدام عنوان URL لنمط الإنتاج مع اسم الحساب في مسار URL مثل http://foo.bar.com:10000/devstoreaccount1/container، تأكد من استخدام المعلمة --disableProductStyleUrl عند بدء تشغيل Azurite.

إذا كنت تستخدم host.docker.internal كمضيف طلب Uri (على سبيل المثال: http://host.docker.internal:10000/devstoreaccount1/container)، يحصل Azurite على اسم الحساب من مسار طلب Uri. هذا السلوك صحيح بغض النظر عما إذا كنت تستخدم المعلمة --disableProductStyleUrl عند بدء تشغيل Azurite.

التحجيم والأداء

لا يدعم Azurite أعدادًا كبيرة من العملاء المتصلين. كما لا يوجد ضمان للأداء. إن Azurite مخصص لأغراض التطوير والاختبار.

معالجة الخطأ

يتم محاذاة Azurite مع منطق معالجة أخطاء تخزين Azure، ولكن تظهر بعض الاختلافات. على سبيل المثال، قد تكون رسائل الخطأ مختلفة، أثناء محاذاة رموز حالة الخطأ.

التخزين المتكرر جغرافياً للوصول إلى القراءة فقط

يدعم Azurite النسخ المتماثل الجغرافي الزائد للوصول إلى القراءة (RA-GRS). بالنسبة إلى موارد التخزين، يمكنك الوصول إلى الموقع الثانوي عن طريق إضافة -secondary اسم الحساب. على سبيل المثال، يمكن استخدام العنوان التالي للوصول إلى كائن ثنائي كبير الحجم باستخدام الموقع الثانوي للقراءة فقط في Azurite:

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

دعم الجدول

دعم الجداول في Azurite يكون في إصداره الأول حاليًا. لمزيد من المعلومات، راجع مشروع جدول Azurite V3.

قد يتطلب دعم الوظائف الدائمة بعض الجداول.

هام

دعم Azurite لتخزين الجداول يكون في إصداره الأول حاليًا. للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

Azurite مفتوح المصدر

نرحب بالمساهمات والاقتراحات الخاصة بـAzurite. انتقل إلى صفحة مشروع Azurite GitHub أو مشكلاتGitHub المتعلقة بالمرحلة الرئيسية وعناصر العمل التي نتعقبها للميزات القادمة وتصحيح الأخطاء. نتتبع أيضًا عناصر العمل التفصيلية في GitHub.

الخطوات التالية