مشاركة عبر


التشغيل السريع: استخدم Azure Cosmos DB ل NoSQL مع Azure SDK Node.js

في هذا التشغيل السريع، يمكنك نشر Azure Cosmos DB أساسي لتطبيق Table باستخدام Azure SDK Node.js. Azure Cosmos DB للجدول هو مخزن بيانات بلا مخطط يسمح للتطبيقات بتخزين بيانات الجدول المنظمة في السحابة. ستتعلم كيفية إنشاء جداول وصفوف وتنفيذ المهام الأساسية داخل مورد Azure Cosmos DB باستخدام Azure SDK Node.js.

الوثائق | المرجعية لواجهة برمجة التطبيقات حزمة التعليمات البرمجية | المصدر لمكتبة (npm) | Azure Developer CLI

المتطلبات الأساسية

  • Azure Developer CLI
  • Docker Desktop
  • Node.js 22 أو أحدث

إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.

تهيئة المشروع

استخدم Azure Developer CLI (azd) لإنشاء حساب Azure Cosmos DB للجدول ونشر نموذج تطبيق حاوية. يستخدم نموذج التطبيق مكتبة العميل لإدارة البيانات النموذجية وإنشاءها وقراءتها والاستعلام عن البيانات.

  1. افتح محطة طرفية في دليل فارغ.

  2. إذا لم تكن قد تمت مصادقتك بالفعل، فقم بالمصادقة على Azure Developer CLI باستخدام azd auth login. اتبع الخطوات المحددة بواسطة الأداة للمصادقة على CLI باستخدام بيانات اعتماد Azure المفضلة لديك.

    azd auth login
    
  3. استخدم azd init لتهيئة المشروع.

    azd init --template cosmos-db-nosql-nodejs-quickstart
    
  4. أثناء التهيئة، قم بتكوين اسم بيئة فريد.

  5. انشر حساب Azure Cosmos DB باستخدام azd up. تنشر قوالب Bicep أيضا نموذج تطبيق ويب.

    azd up
    
  6. أثناء عملية التوفير، حدد اشتراكك والموقع المطلوب ومجموعة الموارد المستهدفة. انتظر حتى اكتمال عملية التوفير. قد تستغرق العملية حوالي خمس دقائق.

  7. بمجرد توفير موارد Azure الخاصة بك، يتم تضمين عنوان URL لتطبيق الويب قيد التشغيل في الإخراج.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. استخدم عنوان URL في وحدة التحكم للانتقال إلى تطبيق الويب الخاص بك في المستعرض. لاحظ إخراج التطبيق قيد التشغيل.

لقطة شاشة لتطبيق الويب قيد التشغيل.

لقطة شاشة لتطبيق الويب قيد التشغيل.

تثبيت مكتبة العميل

تتوفر مكتبة العميل من خلال مدير الحِزَم العقدة، كحزمة@azure/cosmos.

  1. افتح terminal وانتقل إلى /src المجلد.

    cd ./src
    
  2. إذا لم يكن مثبتا بالفعل، فقم بتثبيت الحزمة @azure/cosmos باستخدام npm install.

    npm install --save @azure/cosmos
    
  3. أيضا، قم بتثبيت الحزمة @azure/identity إذا لم تكن مثبتة بالفعل.

    npm install --save @azure/identity
    
  4. افتح الملف src/package.json وراجعه للتحقق من وجود azure-cosmos الإدخالين وazure-identity.

نموذج الكائن

Name ‏‏الوصف
CosmosClient هذه الفئة هي فئة العميل الأساسية وتستخدم لإدارة بيانات التعريف أو قواعد البيانات على مستوى الحساب.
Database تمثل هذه الفئة قاعدة بيانات داخل الحساب.
Container تستخدم هذه الفئة بشكل أساسي لتنفيذ عمليات القراءة والتحديث والحذف على الحاوية أو العناصر المخزنة داخل الحاوية.
PartitionKey تمثل هذه الفئة مفتاح قسم منطقي. هذه الفئة مطلوبة للعديد من العمليات والاستعلامات الشائعة.
SqlQuerySpec تمثل هذه الواجهة استعلام SQL وأي معلمات استعلام.

أمثلة على التعليمات البرمجية

يستخدم نموذج التعليمات البرمجية في القالب قاعدة بيانات باسم cosmicworks وحاوية باسم products. products تحتوي الحاوية على تفاصيل مثل الاسم والفئة والكمية والمعرف الفريد وعلامة البيع لكل منتج. تستخدم الحاوية الخاصية /category كمفتاح قسم منطقي.

مصادقة العميل

ينشئ هذا النموذج مثيلا جديدا من CosmosClient النوع ويصادق باستخدام مثيل DefaultAzureCredential .

const credential = new DefaultAzureCredential();

const client = new CosmosClient({
    '<azure-cosmos-db-nosql-account-endpoint>',
    aadCredentials: credential
});
const credential: TokenCredential = new DefaultAzureCredential();

const client = new CosmosClient({
    '<azure-cosmos-db-nosql-account-endpoint>',
    aadCredentials: credential
});

الحصول على قاعدة بيانات

استخدم client.database لاسترداد قاعدة البيانات الموجودة المسماة cosmicworks.

const database = client.database('cosmicworks');
const database: Database = client.database('cosmicworks');

الحصول على حاوية

استرداد الحاوية الموجودة products باستخدام database.container.

const container = database.container('products');
const container: Container = database.container('products');

إنشاء عنصر

أنشئ كائنا جديدا مع جميع الأعضاء الذين تريد تسلسلهم إلى JSON. في هذا المثال، يحتوي النوع على معرف فريد وحقول للفئة والاسم والكمية والسعر والبيع. إنشاء عنصر في الحاوية باستخدام container.items.upsert. هذا الأسلوب "upserts" العنصر استبدال العنصر بشكل فعال إذا كان موجودا بالفعل.

const item = {
    'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    'category': 'gear-surf-surfboards',
    'name': 'Yamba Surfboard',
    'quantity': 12,
    'price': 850.00,
    'clearance': false
};

let response = await container.items.upsert(item);
const item: Product = {
    'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
    'category': 'gear-surf-surfboards',
    'name': 'Yamba Surfboard',
    'quantity': 12,
    'price': 850.00,
    'clearance': false
};

let response: ItemResponse<Product> = await container.items.upsert<Product>(item);

قراءة عنصر

تنفيذ عملية قراءة نقطة باستخدام كل من المعرف الفريد (id) وحقول مفتاح القسم. استخدم container.item للحصول على مؤشر إلى عنصر واسترداد item.read العنصر المحدد بكفاءة.

const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';

let response = await container.item(id, partitionKey).read();
let read_item = response.resource;
const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';

let response: ItemResponse<Product> = await container.item(id, partitionKey).read<Product>();
let read_item: Product = response.resource!;

عناصر الاستعلام

تنفيذ استعلام عبر عناصر متعددة في حاوية باستخدام container.items.query. ابحث عن كافة العناصر ضمن فئة محددة باستخدام هذا الاستعلام الذي تم تحديد معلمات له:

SELECT * FROM products p WHERE p.category = @category

إحضار كافة نتائج الاستعلام باستخدام query.fetchAll. التكرار الحلقي عبر نتائج الاستعلام.

const querySpec = {
    query: 'SELECT * FROM products p WHERE p.category = @category',
    parameters: [
        {
            name: '@category',
            value: 'gear-surf-surfboards'
        }
    ]
};

let response = await container.items.query(querySpec).fetchAll();
for (let item of response.resources) {
    // Do something
}
const querySpec: SqlQuerySpec = {
    query: 'SELECT * FROM products p WHERE p.category = @category',
    parameters: [
        {
            name: '@category',
            value: 'gear-surf-surfboards'
        }
    ]
};

let response: FeedResponse<Product> = await container.items.query<Product>(querySpec).fetchAll();
for (let item of response.resources) {
    // Do something
}

استكشف بياناتك

استخدم ملحق Visual Studio Code ل Azure Cosmos DB لاستكشاف بيانات NoSQL. يمكنك تنفيذ عمليات قاعدة البيانات الأساسية بما في ذلك على سبيل المثال لا الحصر:

  • تنفيذ الاستعلامات باستخدام سجل قصاصات أو محرر الاستعلام
  • تعديل العناصر وتحديثها وإنشائه وحذفها
  • استيراد البيانات المجمعة من مصادر أخرى
  • إدارة قواعد البيانات والحاويات

لمزيد من المعلومات، راجع كيفية استخدام ملحق Visual Studio Code لاستكشاف Azure Cosmos DB لبيانات NoSQL.

تنظيف الموارد

عندما لم تعد بحاجة إلى نموذج التطبيق أو الموارد، قم بإزالة التوزيع المقابل وجميع الموارد.

azd down