إجراء اتصالات صادرة من خلال ارتباط خاص مشترك

توضح هذه المقالة كيفية تكوين المكالمات الخاصة والصادرة من Azure الذكاء الاصطناعي Search إلى مورد Azure PaaS الذي يعمل داخل شبكة ظاهرية.

يسمح إعداد اتصال خاص لخدمة بحث بالاتصال بعنوان IP لشبكة ظاهرية بدلا من منفذ مفتوح على الإنترنت. يسمى الكائن الذي تم إنشاؤه للاتصال ارتباطا خاصا مشتركا. في الاتصال، تستخدم خدمة البحث الارتباط الخاص المشترك داخليا للوصول إلى مورد Azure PaaS داخل حدود الشبكة.

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

إشعار

إذا كنت تقوم بإعداد اتصال مفهرس خاص بمثيل SQL المدار، فشاهد هذه المقالة بدلا من ذلك.

يقوم Azure الذكاء الاصطناعي Search بإجراء استدعاءات صادرة إلى موارد Azure PaaS الأخرى في السيناريوهات التالية:

  • يتصل المفهرس أو محرك البحث ب Azure OpenAI لتضمين النص إلى المتجه
  • يتصل المفهرس بمصادر البيانات المدعومة
  • اتصالات المفهرس (مجموعة المهارات) ب Azure Storage للتخزين المؤقت للإثراء أو تصحيح أخطاء جلسة العمل أو الكتابة إلى مخزن المعرفة
  • طلبات مفتاح التشفير إلى Azure Key Vault
  • طلبات مهارة مخصصة إلى Azure Functions أو مورد مشابه

تعمل الارتباطات الخاصة المشتركة فقط لاتصالات Azure إلى Azure. إذا كنت تتصل ب OpenAI أو نموذج خارجي آخر، فيجب أن يكون الاتصال عبر الإنترنت العام.

الروابط الخاصة المشتركة مخصصة للعمليات والبيانات التي يتم الوصول إليها من خلال نقطة نهاية خاصة لموارد Azure أو العملاء الذين يتم تشغيلها في شبكة Azure الظاهرية.

الارتباط الخاص المشترك هو:

  • تم إنشاؤه باستخدام أدوات Azure الذكاء الاصطناعي Search أو واجهات برمجة التطبيقات أو SDKs
  • تمت الموافقة عليه من قبل مالك مورد Azure PaaS
  • يستخدم داخليا بواسطة Azure الذكاء الاصطناعي Search على اتصال خاص بمورد Azure معين

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

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

هناك سيناريوهان لاستخدام Azure Private Link وAzure الذكاء الاصطناعي Search معا.

  • السيناريو الأول: إنشاء ارتباط خاص مشترك عندما يتطلب اتصال صادر (مفهرس) ب Azure PaaS اتصالا خاصا.

  • السيناريو الثاني: تكوين البحث عن اتصال وارد خاص من العملاء الذين يتم تشغيلها في شبكة ظاهرية.

السيناريو الأول مغطى في هذه المقالة.

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

القيود

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

  • العديد من أنواع الموارد المستخدمة في ارتباط خاص مشترك قيد المعاينة. إذا كنت تتصل بمورد معاينة (قاعدة بيانات Azure ل MySQL أو Azure Functions أو مثيل Azure SQL المدار)، فاستخدم إصدار معاينة من Management REST API لإنشاء الارتباط الخاص المشترك. تتضمن 2020-08-01-previewهذه الإصدارات و 2021-04-01-previewو.2024-03-01-preview

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

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

  • Azure الذكاء الاصطناعي Search في المستوى الأساسي أو أعلى. إذا كنت تستخدم الذكاء الاصطناعي الإثراء ومجموعات المهارات، فيجب أن يكون المستوى قياسي 2 (S2) أو أعلى. راجع حدود الخدمة للحصول على التفاصيل.

  • مورد Azure PaaS من القائمة التالية من أنواع الموارد المدعومة، التي تم تكوينها للتشغيل في شبكة ظاهرية.

  • الأذونات على كل من Azure الذكاء الاصطناعي Search ومصدر البيانات:

    • في مورد Azure PaaS، يجب أن يكون لديك الإذن للموافقة على اتصالات نقطة النهاية الخاصة. على سبيل المثال، إذا كنت تستخدم حساب تخزين Azure كمصدر بيانات (مثل حاوية Blob ومشاركة ملفات Azure وجدول Azure)، فأنت بحاجة إلى Microsoft.Storage/storageAccounts/privateEndpointConnectionsApproval/action.

    • في خدمة البحث، يجب أن يكون لديك أذونات القراءة والكتابة على موارد الارتباط الخاص المشترك وحالات عملية القراءة:

      • Microsoft.Search/searchServices/sharedPrivateLinkResources/write
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/read
      • Microsoft.Search/searchServices/sharedPrivateLinkResources/operationStatuses/read

أنواع الموارد المدعومة

يمكنك إنشاء ارتباط خاص مشترك للموارد التالية.

نوع المورد المصدر الفرعي (أو معرف المجموعة)
Microsoft.Storage/storageAccounts 1 blob، ، table، dfsfile
Microsoft.DocumentDB/databaseAccounts 2 Sql
Microsoft.Sql/ خوادم sqlServer
Microsoft.KeyVault/vaults vault
Microsoft.DBforMySQL/servers (معاينة) mysqlServer
Microsoft.Web/sites (معاينة) 3 sites
Microsoft.Sql/managedInstances (معاينة) 4 managedInstance
Microsoft.CognitiveServices/accounts (معاينة) 5 openai_account

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

2Microsoft.DocumentDB/databaseAccounts يتم استخدام نوع المورد لاتصالات المفهرس ب Azure Cosmos DB ل NoSQL. اسم الموفر ومعرف المجموعة حساسان لحالة الأحرف.

3Microsoft.Web/sites يتم استخدام نوع المورد لخدمة التطبيقات ووظائف Azure. في سياق Azure الذكاء الاصطناعي Search، فإن دالة Azure هي السيناريو الأكثر احتمالا. تستخدم دالة Azure بشكل شائع لاستضافة منطق مهارة مخصصة. تحتوي Azure Function على خطط استضافة Consumption وPremium وEdated App Service. بيئة خدمة التطبيقات (ASE) وخدمة Azure Kubernetes (AKS) غير مدعومة في الوقت الحالي.

4 راجع إنشاء ارتباط خاص مشترك لمثيل SQL المدار للحصول على الإرشادات.

5Microsoft.CognitiveServices/accounts يتم استخدام نوع المورد لاتصالات المفهرس ب Azure OpenAI عند تنفيذ التوجيه المتكامل.

استخدم مدخل Microsoft Azure أو Management REST API أو Azure CLI أو Azure PowerShell لإنشاء ارتباط خاص مشترك.

إليك بعض الأفكار:

  • امنح الارتباط الخاص اسما ذا معنى. في مورد Azure PaaS، يظهر ارتباط خاص مشترك جنبا إلى جنب مع نقاط النهاية الخاصة الأخرى. يمكن أن يذكرك اسم مثل "shared-private-link-for-search" بكيفية استخدامه.

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

  1. سجل الدخول إلى مدخل Microsoft Azure وابحث عن خدمة البحث.

  2. ضمن الإعدادات في جزء التنقل الأيمن، حدد Networking.

  3. في صفحة الوصول الخاص المشترك، حدد + إضافة وصول خاص مشترك.

  4. حدد إما الاتصال إلى مورد Azure في دليلي أو الاتصال إلى مورد Azure حسب معرف المورد.

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

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

  6. إذا حددت الخيار الثاني، أدخل معرف مورد Azure يدويا واختر معرف المجموعة المناسب من القائمة في بداية هذه المقالة.

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

  7. تأكد من أن حالة التوفير هي "تحديث".

    لقطة شاشة لصفحة إضافة وصول خاص مشترك، تظهر إنشاء الموارد قيد التقدم.

  8. بمجرد إنشاء المورد بنجاح، تتغير حالة التوفير للمورد إلى "Succeeded".

    لقطة شاشة لصفحة إضافة وصول خاص مشترك، تظهر اكتمال إنشاء المورد.

202 Accepted يتم إرجاع الاستجابة عند النجاح. عملية إنشاء نقطة نهاية خاصة صادرة هي عملية طويلة الأمد (غير متزامنة). يتضمن توزيع الموارد التالية:

  • نقطة نهاية خاصة، مخصصة بعنوان IP خاص في حالة "Pending" . يتم الحصول على عنوان IP الخاص من مساحة العنوان المخصصة للشبكة الظاهرية لبيئة التنفيذ للمفهرس الخاص بخدمة البحث. عند الموافقة على نقطة النهاية الخاصة، ينشأ أي اتصال من Azure الذكاء الاصطناعي Search إلى مورد Azure من عنوان IP الخاص وقناة ارتباط خاصة آمنة.

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

2 - الموافقة على اتصال نقطة النهاية الخاصة

يتم منح الموافقة على اتصال نقطة النهاية الخاصة على جانب Azure PaaS. مطلوب موافقة صريحة من قبل مالك المورد. تغطي الخطوات التالية الموافقة باستخدام مدخل Microsoft Azure، ولكن فيما يلي بعض الارتباطات للموافقة على الاتصال برمجيا من جانب Azure PaaS:

باستخدام مدخل Microsoft Azure، قم بتنفيذ الخطوات التالية:

  1. افتح صفحة Networking لمورد Azure PaaS.النص

  2. ابحث عن المقطع الذي يسرد اتصالات نقطة النهاية الخاصة. المثال التالي لحساب تخزين.

    لقطة شاشة لمدخل Azure، تعرض جزء اتصالات نقطة النهاية الخاصة.

  3. حدد الاتصال، ثم حدد موافقة. قد يستغرق تحديث الحالة في المدخل بضع دقائق.

    لقطة شاشة لمدخل Microsoft Azure، تعرض حالة تمت الموافقة عليها في جزء اتصالات نقطة النهاية الخاصة.

بعد الموافقة على نقطة النهاية الخاصة، يقوم Azure الذكاء الاصطناعي Search بإنشاء تعيينات منطقة DNS الضرورية في منطقة DNS التي تم إنشاؤها لها.

على الرغم من أن ارتباط نقطة النهاية الخاصة على صفحة Networking نشط، إلا أنه لن يتم حله.

لقطة شاشة لارتباط نقطة النهاية الخاصة في صفحة شبكة Azure PaaS.

يؤدي تحديد الارتباط إلى حدوث خطأ. تظهر رسالة "The access token is from the wrong issuer" حالة ل و must match the tenant associated with this subscription لأن مورد نقطة النهاية الخاصة للواجهة الخلفية يتم توفيره بواسطة Microsoft في مستأجر تديره Microsoft، بينما المورد المرتبط (Azure الذكاء الاصطناعي Search) موجود في المستأجر الخاص بك. حسب التصميم، لا يمكنك الوصول إلى مورد نقطة النهاية الخاصة عن طريق تحديد ارتباط اتصال نقطة النهاية الخاصة.

اتبع الإرشادات الموجودة في القسم التالي للتحقق من حالة الارتباط الخاص المشترك.

على جانب Azure الذكاء الاصطناعي Search، يمكنك تأكيد الموافقة على الطلب عن طريق إعادة النظر في صفحة الوصول الخاص المشترك لصفحة شبكة خدمة البحث. يجب الموافقة على حالة الاتصال.

لقطة شاشة لمدخل Azure، تعرض مورد ارتباط خاص مشترك معتمد.

بدلا من ذلك، يمكنك أيضا الحصول على حالة الاتصال باستخدام واجهة برمجة تطبيقات GET Shared Private Link.

az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Search/searchServices/contoso-search/sharedPrivateLinkResources/blob-pe?api-version=2023-11-01

سيؤدي ذلك إلى إرجاع JSON، حيث تظهر حالة الاتصال ك "الحالة" ضمن قسم "الخصائص". فيما يلي مثال لحساب تخزين.

{
      "name": "blob-pe",
      "properties": {
        "privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Storage/storageAccounts/contoso-storage",
        "groupId": "blob",
        "requestMessage": "please approve",
        "status": "Approved",
        "resourceRegion": null,
        "provisioningState": "Succeeded"
      }
}

إذا كانت حالة التوفير (properties.provisioningState) للمورد "ناجحة" وكانت حالة الاتصال (properties.status) "معتمدة"، فهذا يعني أن مورد الارتباط الخاص المشترك يعمل ويمكن تكوين المفهرس للاتصال عبر نقطة النهاية الخاصة.

4 - تكوين المفهرس للتشغيل في البيئة الخاصة

يحدث تنفيذ المفهرس إما في بيئة خاصة خاصة بخدمة البحث، أو بيئة متعددة المستأجرين تستخدم داخليا لإلغاء تحميل معالجة مجموعة المهارات باهظة الثمن لعدة عملاء.

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

توضح لك هذه الخطوة كيفية تكوين المفهرس للتشغيل في البيئة الخاصة باستخدام واجهة برمجة تطبيقات REST. يمكنك أيضا تعيين بيئة التنفيذ باستخدام محرر JSON في المدخل.

إشعار

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

  1. إنشاء تعريف مصدر البيانات والفهرس ومجموعة المهارات (إذا كنت تستخدم واحدة) كما تفعل عادة. لا توجد خصائص في أي من هذه التعريفات تختلف عند استخدام نقطة نهاية خاصة مشتركة.

  2. إنشاء مفهرس يشير إلى مصدر البيانات والفهرس ومجموعة المهارات التي قمت بإنشائها في الخطوة السابقة. بالإضافة إلى ذلك، يجبر المفهرس على التشغيل في بيئة التنفيذ الخاصة عن طريق تعيين خاصية تكوين المفهرس executionEnvironment إلى private.

    {
        "name": "indexer",
        "dataSourceName": "blob-datasource",
        "targetIndexName": "index",
        "parameters": {
            "configuration": {
                "executionEnvironment": "private"
            }
        },
        "fieldMappings": []
    }
    

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

إشعار

إذا كان لديك مفهرسات موجودة بالفعل، يمكنك تحديثها عبر PUT API عن طريق تعيين executionEnvironment إلى private أو باستخدام محرر JSON في المدخل.

  1. إذا لم تكن قد فعلت ذلك بالفعل، فتحقق من أن مورد Azure PaaS يرفض الاتصالات من الإنترنت العام. إذا تم قبول الاتصالات، فراجع إعدادات DNS في صفحة الشبكات لمورد Azure PaaS.

  2. اختر أداة يمكنها استدعاء سيناريو طلب صادر، مثل اتصال المفهرس بنقطة نهاية خاصة. الخيار السهل هو استخدام معالج استيراد البيانات ، ولكن يمكنك أيضا تجربة عميل REST وواجهات برمجة تطبيقات REST لمزيد من الدقة. بافتراض أن خدمة البحث لم يتم تكوينها أيضا لاتصال خاص، يمكن أن يكون اتصال عميل REST للبحث عبر الإنترنت العام.

  3. تعيين سلسلة الاتصال إلى مورد Azure PaaS الخاص. لا يتغير تنسيق سلسلة الاتصال للارتباط الخاص المشترك. تستدعي خدمة البحث الارتباط الخاص المشترك داخليا.

    بالنسبة لأحمال عمل المفهرس، سلسلة الاتصال في تعريف مصدر البيانات. قد يبدو مثال مصدر البيانات كما يلي:

     {
       "name": "my-blob-ds",
       "type": "azureblob",
       "subtype": null,
       "credentials": {
         "connectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=..."
       }
    
  4. بالنسبة لأحمال عمل المفهرس، تذكر تعيين بيئة التنفيذ في تعريف المفهرس. قد يبدو مثال تعريف المفهرس كما يلي:

    "name": "indexer",
    "dataSourceName": "my-blob-ds",
    "targetIndexName": "my-index",
    "parameters": {
       "configuration": {
           "executionEnvironment": "private"
           }
       },
    "fieldMappings": []
    }
    
  5. تشغيل المفهرس. إذا نجح تنفيذ المفهرس وتم ملء فهرس البحث، يعمل الارتباط الخاص المشترك.

استكشاف الأخطاء وإصلاحها

  • إذا فشل إنشاء المفهرس مع "بيانات اعتماد مصدر البيانات غير صالحة"، فتحقق من حالة الموافقة على الارتباط الخاص المشترك قبل تصحيح الاتصال. إذا كانت الحالة هي Approved، فتحقق من الخاصية properties.provisioningState . إذا كان ، Incompleteفقد تكون هناك مشكلة في التبعيات الأساسية. في هذه الحالة، أعد إصدار PUT الطلب لإعادة إنشاء الارتباط الخاص المشترك. قد تحتاج أيضا إلى تكرار خطوة الموافقة.

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

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

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

تعرف على المزيد حول نقاط النهاية الخاصة وطرق الاتصال الآمنة الأخرى: