Создать индексатор для Azure AI. Искать по HTTP частную CosmosDB для MongoDB?

В настоящее время я могу создать источник данных и индекс с помощью HTTP-запросов через Postman. И мой Azure AI Search, и мой CosmosDB для Mongo отключены для общего доступа.

POST-запрос для моего источника данных, который работает:

POST https://example-mongo.search.windows.net/datasources?api-version=2024-07-01
    Content-Type: application/json
    api-key: [my key for azure search]

{   
    "name" : "collection-datasource",  
    "description" : "Anything you want, or nothing at all",  
    "type" : "cosmosdb",
    "credentials" : { 
        "connectionString" : "AccountEndpoint=https://example-mongo.documents.azure.com:443/;AccountKey=abcd==;Database=DB;ApiKind=MongoDB" 
        },
    "container": {
        "name": "collection"
    }
}

POST-запрос для индексатора, который не работает и выдает ошибку 403:

POST https://example-mongo.search.windows.net/indexers?api-version=2024-07-01
    Content-Type: application/json
    api-key: [my key for azure search]

{
  "name": "collection-indexer",
  "description": null,
  "dataSourceName": "collection-datasource",
  "targetIndexName": "collection-index", #Created previously through postman as well
  "parameters": {
    "batchSize": null,
    "maxFailedItems": null,
    "maxFailedItemsPerBatch": null
  },
  "fieldMappings": [
    {
      "sourceFieldName": "productDescription",
      "targetFieldName": "productDescriptionCustom",
      "mappingFunction": null
    }
  ]
}

Ошибка 403:

Error with data source: Response status code does not indicate success: Forbidden (403);
Substatus: 0; ActivityId: 1ffa970a-5bb7-42fa-8ace-968fc329bae1;
Reason: (Request originated from IP --- through public internet.
This is blocked by your Cosmos DB account firewall settings. 
More info: https://aka.ms/cosmosdb-tsg-forbidden\r\nActivityId: --,
Microsoft.Azure.Documents.Common/2.14.0, Windows/10.0.20348 cosmos-netstandard-sdk/3.30.20); 
Please adjust your data source definition in order to proceed

Та же ошибка возникает, когда я пытаюсь создать индексатор через портал с существующим индексом и источником данных.

Я не понимаю, что означает фраза «Пожалуйста, измените определение источника данных». Могу ли я каким-то образом добавить строку подключения для моего CosmosDB в свой запрос на создание индексатора? Или есть еще одна проблема, которую мне нужно исправить?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • Из-за ограничений общего доступа к учетной записи Cosmos DB. Когнитивный поиск Azure предотвращает доступ к источнику данных Cosmos DB, поскольку он поступает с IP-адреса, который не внесен в белый список в настройках брандмауэра Cosmos DB.

Сначала настройте параметры брандмауэра учетной записи Cosmos DB, чтобы разрешить доступ из Когнитивного поиска Azure. Благодаря этому мы можем добавить диапазон IP-адресов или тег службы Когнитивного поиска Azure в брандмауэр Cosmos DB.

  • Конфигурация источника данных, указанная в вопросе, верна, проверьте все необходимые разрешения.

Первый скриншот доступен только с MongoDB (виртуальное ядро)? Я использую RU-версию и не уверен, что вижу эту опцию на своей странице «Сеть». Кроме того, это вообще невозможно, когда в CosmosDB полностью отключен публичный доступ? Я просто не понимаю, почему добавление источника данных было простым, а добавление индексатора — нет.

ban_ana 07.08.2024 15:53

Согласно этому ресурсу, индексаторы Azure AI Search не могут устанавливать исходящие соединения через частные конечные точки Cosmos DB для MongoDB, только через ограничение IP, поэтому я ответил на свой собственный комментарий здесь. (Learn.microsoft.com/en-us/azure/search/…)

ban_ana 07.08.2024 22:35

В версии RU, особенно при использовании API MongoDB, можно ограничивать доступ через брандмауэры и виртуальные сети. он по своей сути не поддерживает исходящие соединения через частные конечные точки

Suresh Chikkam 08.08.2024 12:31

Индексаторы Cognitive Search не могут использовать частные конечные точки для прямого доступа к CosmoDB для MongoDB. Это означает, что когда общедоступный доступ полностью отключен в Cosmos DB, служба поиска Azure не сможет подключиться к источнику данных, если только это не будет осуществляться через разрешенный IP-адрес или тег службы.

Suresh Chikkam 08.08.2024 12:33

Другие вопросы по теме

Похожие вопросы

Проблема с именем производного столбца потока данных ADF
GraphServiceClient с DelegateAuthenticationProvider не найден и как изменить мой код
Аутентификация Azure AD перенаправляет меня на «{domain}/.auth/login/done» после «{domain}/.auth/login/aad/callback»?
Как удалить файлы и подкаталоги из папки, но не саму папку, с помощью ADF
Как я могу отладить ошибку: сообщение достигло MaxDequeueCount, равного 5. Перемещение сообщения в очередь «pcaob-poison»?
Назначение разрешений приложений пользователям/группам и другим участникам в Entra ID
Не удалось загрузить файл или сборку «System.Diagnostics.DiagnosticSource», версия = 6.0.0.0. Система не может найти указанный файл
Как легко переносить изменения в ветку функций из основной ветки
Скрипт PowerShell для вывода списка больших двоичных объектов хранилища Azure
Устойчивые функции Azure не вызываются при использовании с триггером Q с использованием управляемого удостоверения