إعداد اتصال مفهرس إلى Azure Storage باستخدام هوية مدارة

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

يمكنك استخدام هوية مدارة معينة من قبل النظام أو هوية مدارة معينة من قبل المستخدم (معاينة). الهويات المدارة هي عمليات تسجيل دخول Microsoft Entra وتتطلب تعيينات دور Azure للوصول إلى البيانات في Azure Storage.

إشعار

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

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

  • إنشاء هوية مدارة لخدمة البحث.

  • تعيين دور في Azure Storage:

    • اختر Storage Blob Data Reader للوصول إلى قراءة البيانات في Blob Storage وADS Gen2.

    • اختر القارئ والبيانات للوصول إلى قراءة البيانات في تخزين الجداول وتخزين الملفات.

  • يجب أن تكون على دراية بمفاهيم المفهرس وتكوينه.

تلميح

للحصول على مثال التعليمات البرمجية في C#، راجع Index Data Lake Gen2 باستخدام معرف Microsoft Entra على GitHub.

إنشاء مصدر البيانات

إنشاء مصدر البيانات وتوفير إما هوية مدارة معينة من قبل النظام أو هوية مدارة معينة من قبل المستخدم (معاينة).

الهوية المُدارة التي يُعيّنها النظام

تدعم واجهة برمجة تطبيقات REST ومدخل Microsoft Azure و.NET SDK باستخدام هوية مدارة معينة من قبل النظام.

عند الاتصال بهوية مدارة معينة من قبل النظام، فإن التغيير الوحيد في تعريف مصدر البيانات هو تنسيق خاصية "بيانات الاعتماد". توفير ResourceId لا يحتوي على مفتاح حساب أو كلمة مرور. يجب أن يتضمن ResourceId معرف الاشتراك لحساب التخزين ومجموعة الموارد لحساب التخزين واسم حساب التخزين.

فيما يلي مثال على كيفية إنشاء مصدر بيانات لفهرسة البيانات من حساب تخزين باستخدام واجهة برمجة تطبيقات إنشاء مصدر البيانات REST سلسلة الاتصال الهوية المدارة. تنسيق الهوية المدارة سلسلة الاتصال هو نفسه لواجهة برمجة تطبيقات REST و.NET SDK ومدخل Azure.

POST https://[service name].search.windows.net/datasources?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Storage/storageAccounts/[storage account name]/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    }
}   

الهوية المدارة المعينة من قبل المستخدم (معاينة)

تدعم واجهة برمجة تطبيقات REST 2021-04-30-preview الاتصالات استنادا إلى هوية مدارة يعينها المستخدم. عند الاتصال بهوية مدارة معينة من قبل المستخدم، هناك تغييران في تعريف مصدر البيانات:

  • أولا، تنسيق الخاصية "بيانات الاعتماد" هو ResourceId الذي لا يحتوي على مفتاح حساب أو كلمة مرور. يجب أن يتضمن ResourceId معرف الاشتراك لحساب التخزين ومجموعة الموارد لحساب التخزين واسم حساب التخزين. هذا التنسيق هو نفس تنسيق الهوية المدارة المعينة من قبل النظام.

  • ثانيا، أضف خاصية "الهوية" التي تحتوي على مجموعة الهويات المدارة المعينة من قبل المستخدم. يجب توفير هوية مدارة واحدة فقط يعينها المستخدم عند إنشاء مصدر البيانات. قم بتعيينه لكتابة "userAssignedIdentities".

فيما يلي مثال على كيفية إنشاء كائن مصدر بيانات المفهرس باستخدام معاينة إنشاء أو تحديث واجهة برمجة تطبيقات REST لمصدر البيانات:

POST https://[service name].search.windows.net/datasources?api-version=2021-04-30-preview
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-datasource",
    "type" : "azureblob",
    "credentials" : { 
        "connectionString" : "ResourceId=/subscriptions/[subscription ID]/resourceGroups/[resource group name]/providers/Microsoft.Storage/storageAccounts/[storage account name]/;" 
    },
    "container" : { 
        "name" : "my-container", "query" : "<optional-virtual-directory-name>" 
    },
    "identity" : { 
        "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
        "userAssignedIdentity" : "/subscriptions/[subscription ID]/resourcegroups/[resource group name]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[managed identity name]" 
    }
}   

إنشاء الفهرس

يحدد الفهرس الحقول في مستند وسمات وبنيات أخرى تشكل تجربة البحث.

فيما يلي استدعاء Create Index REST API مع حقل قابل content للبحث لتخزين النص المستخرج من الكائنات الثنائية كبيرة الحجم:

POST https://[service name].search.windows.net/indexes?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
        "name" : "my-target-index",
        "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
        ]
}

إنشاء المفهرس

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

فيما يلي استدعاء Create Indexer REST API مع تعريف مفهرس كائن ثنائي كبير الحجم. يتم تشغيل المفهرس عند إرسال الطلب.

POST https://[service name].search.windows.net/indexers?api-version=2023-11-01
Content-Type: application/json
api-key: [admin key]

{
    "name" : "blob-indexer",
    "dataSourceName" : "blob-datasource",
    "targetIndexName" : "my-target-index"
}

الوصول إلى البيانات المؤمنة للشبكة في حسابات التخزين

يمكن تأمين حسابات تخزين Azure بشكل أكبر باستخدام جدران الحماية والشبكات الظاهرية. إذا كنت تريد فهرسة المحتوى من حساب تخزين مؤمن باستخدام جدار حماية أو شبكة ظاهرية، فشاهد إجراء اتصالات المفهرس إلى Azure Storage كخدمة موثوق بها.

(راجع أيضًا )