Создание индексатора (REST API поиска Azure ИИ)

Индексатор автоматизирует индексирование из поддерживаемых источников данных Azure, таких как служба хранилища Azure, база данных Azure SQL и Azure Cosmos DB. Индексаторы используют предопределенный источник данных и индекс для создания конвейера индексирования, который извлекает и сериализует исходные данные, передавая их службе поиска для приема данных. Для обогащения изображений и неструктурированного текста с помощью ИИ индексаторы также могут принимать набор навыков , определяющий обработку ИИ.

При создании индексатора он добавляется в службу поиска и запускается. Если запрос выполнен успешно, индекс заполняется контентом, доступным для поиска, из источника данных.

В запросе можно использовать POST или PUT. Для любого из них документ JSON в тексте запроса предоставляет определение объекта.

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

Кроме того, можно использовать PUT и указать имя индексатора в URI.

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=[api-version]
    Content-Type: application/json  
    api-key: [admin key]    

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

Конфигурация индексатора зависит от типа источника данных. Чтобы получить указания по созданию индексаторов для конкретной платформы данных, начните со статьи Общие сведения об индексаторах, которая содержит полный список других статей на эту тему.

Параметры URI

Параметр Описание
имя службы Обязательный. Задайте уникальное, определяемое пользователем имя службы поиска.
имя индексатора Требуется в URI при использовании PUT. Имя должно быть строчным, начинаться с буквы или цифры, без косых черт или точек и содержать менее 128 символов. имя должно начинаться с буквы или цифры, но остальная часть имени может включать любые буквы, цифры и дефисы, если дефисы не являются последовательными.
api-version Обязательный. Список поддерживаемых версий см. в разделе Версии API .

Заголовки запросов

Таблица ниже содержит обязательные и необязательные заголовки запроса.

Поля Описание
Content-Type Обязательный. Для этого заголовка необходимо задать значение application/json
api-key Необязательно, если вы используете роли Azure и в запросе предоставляется маркер носителя, в противном случае требуется ключ. Запросы на создание должны содержать api-key заголовок, заданный для ключа администратора (в отличие от ключа запроса). Дополнительные сведения см. в статье Подключение к поиску ИИ Azure с помощью проверки подлинности по ключу .

Текст запроса

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

Следующий код JSON представляет собой высокоуровневое представление main частей определения.

{   
    "name" : (optional on PUT; required on POST) "Name of the indexer",  
    "description" : (optional) "Anything you want, or nothing at all", 
    "dataSourceName" : (required) "Name of an existing data source",  
    "targetIndexName" : (required) "Name of an existing index",  
    "skillsetName" : (required for AI enrichment) "Name of an existing skillset",
    "disabled" : (optional) Boolean value indicating whether the indexer is disabled. False by default,
    "schedule" : (optional but runs once immediately if unspecified) { ... },  
    "parameters": { (optional)
       "batchSize": null,
       "maxFailedItems": 0,
       "maxFailedItemsPerBatch": 0,
       "base64EncodeKeys": null,
       "configuration": { (optional, mostly specific to the data source)
            "executionEnvironment": null
        }
      }, 
    "fieldMappings" : (optional) { ... },
    "outputFieldMappings" : (required for AI enrichment) { ... },
    "encryptionKey":(optional) { }
} 

Запрос содержит следующие свойства.

Свойство Описание
name Обязательный. Имя должно быть строчным, начинаться с буквы или цифры, без косых черт или точек и содержать менее 128 символов. Имя должно начинаться с буквы или цифры, но остальная часть имени может содержать любые буквы, цифры и дефисы, если дефисы не являются последовательными.
dataSourceName Обязательный. Имя существующего источника данных. Он часто включает свойства, которые индексатор может использовать для использования характеристик исходной платформы. Таким образом, источник данных, передаваемый в индексатор, определяет доступность определенных свойств и параметров, таких как фильтрация типов контента в больших двоичных объектах Azure. или время ожидания запроса для базы данных Azure SQL.
targetIndexName Обязательный. Имя существующей схемы индекса. Он определяет коллекцию полей, содержащую доступные для поиска, фильтруемые, извлекаемые и другие атрибуты, определяющие способ использования поля. Во время индексирования индексатор сканирует источник данных, при необходимости вскрывая документы и извлекая информацию, сериализует результаты в формат JSON и индексирует полезные данные на основе схемы, определенной для вашего индекса.
skillsetName Требуется для обогащения СИ. Имя существующего набора навыков, по одному на индексатор. Как и в случае с источниками данных и индексами, набор навыков — это независимое определение, которое прикрепляется к индексатору. Можно перенацелить набор квалификационных навыков на другие индексаторы, но индексатор может одновременно использовать только один набор квалификационных навыков.
schedule Необязательный, но выполняется один раз, если он не указан и не отключен. Расписание содержит interval (обязательно) и startTime (необязательно). Дополнительные сведения см. в статье Планирование индексатора.

interval указывает, как часто выполняется индексатор. Наименьшее допустимое значение — пять минут, наибольшее — один день. Значение должно быть отформатировано как значение dayTimeDuration XSD (ограниченное подмножество значения продолжительности ISO 8601 ). Шаблон для этого: "P[nD][T[nH][nM]]". Примеры: PT15M каждые 15 минут, PT2H за каждые 2 часа.

startTime — дата и время в формате UTC, когда индексатор должен начать работу.
disabled Необязательный элемент. Логическое значение, указывающее, отключен ли индексатор. Задайте это свойство, если вы хотите создать определение индексатора без его немедленного запуска. Значение по умолчанию: false.
параметры Необязательный элемент. Свойства для изменения поведения среды выполнения.

"batchSize" (целое число). Указывает количество элементов, которые считываются из источника данных и индексируются в рамках одного пакета для повышения производительности. Значение по умолчанию зависит от источника (1000 для базы данных Azure SQL и Azure Cosmos DB, 10 для Хранилище BLOB-объектов Azure).

"maxFailedItems" (целое число). Указывает количество ошибок, допускаемых до того, как выполнение индексатора считается сбоем. Значение по умолчанию — 0. Установите значение "-1", если вы не хотите, чтобы какие-либо ошибки приводили к остановке процесса индексирования. Используйте команду Получить состояние индексатора , чтобы получить сведения о документах, завершив ошибку.

"maxFailedItemsPerBatch" (целое число). Указывает количество ошибок, допускаемых в каждом пакете до того, как выполнение индексатора считается сбоем. Значение по умолчанию — 0. Установите значение "-1", если вы не хотите, чтобы какие-либо ошибки приводили к остановке процесса индексирования.

"base64EncodeKey" (Логическое значение). Указывает, следует ли кодировать ключи документа, содержащие недопустимые символы.

"configuration". Свойства, которые зависят от источника данных.

"executionEnvironment" (строка). Переопределяет среду выполнения, выбранную внутренними системными процессами. Если индексаторы обращаются к внешним ресурсам через подключения к Private частным конечным точкам, необходимо явно задать для среды выполнения значение . Этот параметр находится в разделе "configuration". Для приема данных этот параметр действителен только для служб, подготовленных как базовые или стандартные (S1, S2, S3). Для обработки контента для обогащения СИ этот параметр действителен только для S2 и S3. Допустимые значения не учитывают регистр и состоят из [null или unspecified], Standard (по умолчанию) или Private.
fieldMappings Необязательный элемент. Явным образом связывает исходное поле с полем назначения в индексе поиска. Используется, если исходное и целевое поля имеют разные имена или типы или если требуется указать функцию. Раздел fieldMappings включает sourceFieldName (обязательное поле в базовом источнике данных), targetFieldName (обязательное поле в индексе) и необязательный mappingFunction для кодирования выходных данных. Список поддерживаемых функций и примеры см. в статье Функции сопоставления полей. Дополнительные общие сведения см. в разделе Сопоставления и преобразования полей.
outputFieldMappings Требуется для конвейера обогащения. Сопоставляет выходные данные набора навыков с индексом или проекцией. Раздел outputFieldMappings включает sourceFieldName (обязательный, узел в дереве обогащения), targetFieldName (обязательный, поле в индексе) и необязательный mappingFunction для кодирования выходных данных. Список поддерживаемых функций и примеры см. в статье Функции сопоставления полей. Дополнительные общие сведения см. в разделе Сопоставление полей выходных данных из набора навыков.
encryptionKey Необязательный элемент. Используется для шифрования определения индексатора при хранении с помощью собственных ключей, управляемых в Key Vault Azure. Доступно для оплачиваемых служб поиска, созданных в 01.01.2019 или позже.

Раздел encryptionKey содержит определяемые keyVaultKeyName пользователем (обязательные), созданные keyVaultKeyVersion системой (обязательные) и предоставляющие keyVaultUri ключ (обязательный, также называемый DNS-именем). Примером URI может быть "https://my-keyvault-name.vault.azure.net".

При необходимости можно указать accessCredentials , используется ли управляемое системное удостоверение. accessCredentials Свойства include applicationId (Microsoft Entra ID идентификатор приложения, которому были предоставлены разрешения на доступ к указанному Key Vault Azure) и applicationSecret (ключ проверки подлинности зарегистрированного приложения). Пример в следующем разделе иллюстрирует синтаксис .

Параметры конфигурации больших двоичных объектов

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

Параметр Тип и допустимые значения Использование
"parsingMode" Строка
"text"
"delimitedText"
"json"
"jsonArray"
"jsonLines"
Для больших двоичных объектов Azure задайте значение text, чтобы повысить производительность индексирования обычных текстовых файлов в хранилище BLOB-объектов.
Если большие двоичные объекты являются обычными CSV-файлами, задайте значение delimitedText.
Для больших двоичных объектов JSON задайте значение json для извлечения структурированного содержимого или для jsonArray извлечения отдельных элементов массива в виде отдельных документов в поиске ИИ Azure. Используйте для jsonLines извлечения отдельных сущностей JSON, разделенных новой строкой, в качестве отдельных документов в поиске ИИ Azure.
"excludedFileNameExtensions" Строка
список с разделителями-запятыми
определяемое пользователем значение
Для больших двоичных объектов Azure можно игнорировать любые типы файлов в списке. Например, можно исключить расширения ".png, .png, .mp4", чтобы пропустить эти файлы во время индексирования.
"indexedFileNameExtensions" Строка
список с разделителями-запятыми
определяемое пользователем значение
Позволяет выбрать большие двоичные объекты Azure, если соответствующее расширение файла указано в списке. Например, можно направить индексирование на файлы определенного приложения, указав расширения ".docx, .pptx, .msg", чтобы специально включить эти типы файлов.
"failOnUnsupportedContentType" Логическое
Да
false (по умолчанию)
Для больших двоичных объектов Azure задайте значение false, если требуется продолжить индексирование при обнаружении неподдерживаемого типа содержимого и вам не известны все типы содержимого (расширения файлов) заранее.
"failOnUnprocessableDocument" Логическое
Да
false (по умолчанию)
Для больших двоичных объектов Azure задайте значение false, чтобы продолжить индексирование в случае сбоя индексирования документа.
"indexStorageMetadataOnly
ForOversizedDocuments"
Логическое значение true
false (по умолчанию)
Для больших двоичных объектов Azure присвойте этому свойству значение true, чтобы все равно индексировать метаданные хранилища для содержимого больших двоичных объектов, размер которых слишком велик для обработки. Большие двоичные объекты слишком большого размера по умолчанию считаются ошибками. Ограничения на размер BLOB-объекта см. в разделе Ограничения службы.
"delimitedTextHeaders" Строка
список с разделителями-запятыми
определяемое пользователем значение
Для BLOB-объектов CSV задает разделенный запятыми список заголовков столбцов, который удобно использовать для сопоставления исходных полей с полями назначения в индексе.
"delimitedTextDelimiter" Строка
одиночный символ
определяемое пользователем значение
Для BLOB-объектов CSV задает разделитель конца строки для CSV-файлов, где каждая строка начинает новый документ (например, "|").
"firstLineContainsHeaders" Логическое
true (по умолчанию)
false
Для BLOB-объектов CSV указывает, что первая (непустая) строка каждого большого двоичного объекта содержит заголовки.
"documentRoot" Строка
определяемый пользователем путь
Для массивов JSON при использовании структурированного или частично структурированного документа можно указать путь к массиву с помощью этого свойства.
"dataToExtract" Строка
"storageMetadata"
"allMetadata"
"contentAndMetadata" (по умолчанию)
Для больших двоичных объектов Azure:
Задайте значение "storageMetadata", чтобы индексировать только стандартные свойства больших двоичных объектов и метаданные, определяемые пользователем.
Задайте значение "allMetadata", чтобы извлекать метаданные, предоставляемые подсистемой хранения BLOB-объектов Azure, и индексировать метаданные в зависимости от типа содержимого (например, исключительно метаданные PNG-файлов).
Задайте значение "contentAndMetadata", чтобы извлекать все метаданные и текстовое содержимое из каждого большого двоичного объекта.

Если для анализа изображений в обогащении с помощью ИИ задано значение, "imageAction" отличное "none"от , "dataToExtract" параметр сообщает индексатору, какие данные следует извлечь из содержимого изображения. Применяется к содержимому внедренных изображений в PDF-файлах или другом приложении или к файлам изображений, например JPG- и PNG-файлам, в больших двоичных объектах Azure.
"imageAction" Строка
"none"
"generateNormalizedImages"
"generateNormalizedImagePerPage"
Для больших двоичных объектов Azure задайте значение "none", чтобы игнорировать внедренные изображения или файлы изображений в наборе данных. Это значение по умолчанию.

Для анализа изображений в обогащении СИ задайте значение"generateNormalizedImages" , чтобы извлечь текст из изображений (например, слово "остановить" из знака остановки трафика) и внедрить его как часть поля содержимого. Во время анализа изображений индексатор создает массив нормализованных изображений в процессе вскрытия документов и внедряет созданную информацию в поле содержимого. Для этого действия параметр "dataToExtract" должен иметь значение "contentAndMetadata". Нормализованное изображение получается путем дополнительной обработки, результатом которой является унифицированное изображение, размер и ориентация которого обеспечивают согласованную визуализацию при добавлении в результаты визуального поиска (например, фотографии одинакового размера в элементе управления графа, как показано в демонстрации JFK). Эта функция формируют такие сведения по каждому изображению.

Если задано значение "generateNormalizedImagePerPage", файлы в формате PDF будут обрабатываться по-другому. Вместо извлечения внедренных изображений, каждая страница будет представлена как изображение и нормализована соответствующим образом. Ожидается, что этот процесс для каждой страницы займет гораздо больше времени, чем "generateNormalizedImages". Файлы формата, отличном от PDF, будут рассматриваться так же, как при заданном параметре "generateNormalizedImages".

"imageAction" Установка любого значения конфигурации, кроме "none" , требует, чтобы набор навыков также был присоединен к индексатору и может быть низкопроизводительным процессом по умолчанию.
"normalizedImageMaxWidth"
"normalizedImageMaxHeight"
Целочисленное значение от 50 до 10 000 Максимальная ширина или высота (в пикселях) соответственно для нормализованных изображений, создаваемых при "imageAction" установке . Значение по умолчанию — 2000.

По умолчанию навыками OCR и анализа изображений поддерживаются нормализованные изображения с максимальными шириной и высотой в 2000 пикселей. Навык OCR поддерживает максимальную ширину и высоту 4200 для языков, отличных от английского, и 10 000 для английского языка. Если увеличить максимальные пределы, то обработка может завершиться сбоем на больших изображениях в зависимости от определения набора навыков и языка документов.
"allowSkillsetToReadFileData" Логическое
Да
false (по умолчанию)
"allowSkillsetToReadFileData" Если задать для параметра значение , true будет создан путь/document/file_data, представляющий собой объект, представляющий исходные данные файла, скачанные из источника данных BLOB-объекта. Это позволяет передать исходные данные файла в пользовательский навык для обработки в конвейере обогащения или в навык извлечения документов. Созданный объект будет определен следующим образом: { "$type": "file", "data": "BASE64 encoded string of the file" }

"allowSkillsetToReadFileData" Для установки параметра значения true требуется, чтобы набор навыков был присоединен к индексатору"parsingMode", а параметру присвоено значение "default", "text" или "json".
"pdfTextRotationAlgorithm" Строка
"none" (по умолчанию)
"detectAngles"
"pdfTextRotationAlgorithm" Если задать для параметра значение , "detectAngles" можно улучшить и улучшить удобочитаемое извлечение текста из PDF-файлов с повернутым текстом. Обратите внимание, что при использовании этого параметра может возникнуть небольшое снижение производительности. Этот параметр применяется только к PDF-файлам и только к PDF-файлам с внедренным текстом. Если повернутый текст отображается во внедренном изображении в PDF-файле, этот параметр не применяется.

При задании "pdfTextRotationAlgorithm" для параметра значения "detectAngles" требуется, чтобы "parsingMode" параметр был установлен в значение "default".

Параметры конфигурации Azure Cosmos DB

Следующие параметры относятся к индексаторам Cosmos DB.

Параметр Тип и допустимые значения Использование
"assumeOrderByHighWaterMarkColumn" Логическое Для индексаторов Cosmos DB с API SQL задайте этот параметр, чтобы предоставить Cosmos DB указание о том, что запрос, используемый для возврата документов для индексирования, на самом деле упорядочен по столбцу _ts . Установка этого параметра дает лучшие результаты в сценариях добавочного индексирования.

параметры конфигурации Azure SQL

Следующие параметры относятся к Базе данных SQL Azure.

Параметр Тип и допустимые значения Использование
"queryTimeout" Строка
"чч:мм:сс"
"00:05:00"
Задайте этот параметр для базы данных SQL Azure, чтобы увеличить время ожидания сверх 5 минут (значение по умолчанию).
"convertHighWaterMarkToRowVersion" Логическое Присвойте этому параметру значение true, чтобы использовать тип данных rowversion для столбца высокой метки воды. Если этому свойству присвоено значение true, индексатор вычитает его из значения rowversion перед запуском индексатора. Это происходит потому, что представления с соединениями "один ко многим" могут содержать строки с повторяющимися значениями rowversion. Вычитание одного из них гарантирует, что запрос индексатора не пропустит эти строки.
"disableOrderByHighWaterMarkColumn" Логическое Задайте для этого параметра значение true, если вы хотите отключить поведение ORDER BY в запросе, используемом для обнаружения изменений. Если вы используете политику обнаружения изменений с высоким уровнем воды, индексатор использует предложения WHERE и ORDER BY для отслеживания строк, требующих индексирования (WHERE [High Water Mark Column] > [Current High Water Mark Value] ORDER BY [High Water Mark Column]). Этот параметр отключает поведение ORDER BY. Индексирование завершится быстрее, но компромисс заключается в том, что если индексатор прерывается по какой-либо причине, все задание индексатора должно быть повторено в полном объеме.

Ответ

Успешный запрос возвращает код состояния "201 — Создан ресурс".

Примеры

Пример. Индексатор с расписанием и универсальными параметрами

Создает индексатор, который копирует данные из таблицы, на которую ссылается ordersds источник данных, в orders индекс по расписанию, которое начинается 1 января 2021 г. в формате UTC и выполняется каждый час. Каждый вызов индексатора будет успешным, если происходит сбой при индексировании не более 5 элементов в каждом пакете и всего не удается индексировать не более 10 элементов.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 }  
}

Примечание

Если для индексатора задано определенное расписание, но каждый раз возникает ошибка на одном и том же документе, то индексатор начнет запускаться с большими интервалами (вплоть до одного раза в 24 часа) до тех пор, пока процесс не будет успешно выполнен. Если вы считаете, что вы исправили проблему, которая приводила к зависавшей индексатору в определенный момент, можно выполнить сброс с последующим запуском по запросу индексатора, и если это успешно выполняется, индексатор снова вернется к заданному интервалу расписания.

Пример. Индексатор с параметрами BLOB-объекта

Индексатор при необходимости может принять параметры конфигурации, которые изменяют поведение во время выполнения. Параметры конфигурации разделены запятыми в запросе индексатора и относятся к типу источника данных. Следующие параметры конфигурации содержат инструкции, используемые для индексирования BLOB-объектов.

  {
    "name" : "my-blob-indexer-for-cognitive-search",
    ... other indexer properties
    "parameters" : 
      { 
      "maxFailedItems" : "15", 
      "batchSize" : "100", 
      "configuration" : 
          { 
          "parsingMode" : "json", 
          "indexedFileNameExtensions" : ".json, .jpg, .png",
          "imageAction" : "generateNormalizedImages",
          "dataToExtract" : "contentAndMetadata" ,
          "executionEnvironment": "Standard"
          } 
      }
  }

Пример. Индексатор с сопоставлениями полей

Сопоставьте поле _id исходной таблицы с полем "id" в индексе поиска. Поиск ИИ Azure не позволяет имя поля начинаться с символа подчеркивания. Сопоставление полей может устранять несоответствия имен. В исходных и целевых именах полей не учитывается регистр. Дополнительные сведения см. в разделе Сопоставления и преобразования полей.

"fieldMappings" : [
    { "sourceFieldName" : "_id", "targetFieldName" : "id" },
    { "sourceFieldName" : "_timestamp", "targetFieldName" : "timestamp" }
]

Пример. Индексатор с обогащением ИИ

Демонстрирует обогащение СИ, на что указывает ссылка на skillset и outputFieldMappings. Наборы квалификационных навыков — это ресурсы высокого уровня, определяемые по отдельности. Этот пример является сокращением определения индексатора в учебнике по обогащению с помощью ИИ.

{
  "name":"demoindexer",	
  "dataSourceName" : "demodata",
  "targetIndexName" : "demoindex",
  "skillsetName" : "demoskillset",
  "fieldMappings" : [
    {
        "sourceFieldName" : "content",
        "targetFieldName" : "content"
    }
   ],
  "outputFieldMappings" : 
  [
    {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
    },
  ],
  "parameters":
  {
  	"maxFailedItems":-1,
  	"configuration": 
    {
    "dataToExtract": "contentAndMetadata",
    "imageAction": "generateNormalizedImages"
    }
  }
}

Пример. Индексатор с сопоставлениями наборов навыков и выходных полей

В сценариях обогащения с помощью ИИ , в которых набор навыков привязан к индексатору, необходимо добавить outputFieldMappings , чтобы связать все выходные данные шага обогащения, предоставляющего содержимое, с полем для поиска в индексе. — sourceFieldName это узел в дереве обогащения. Это может быть составная структура, созданная во время обогащения из двух отдельных полей в исходном документе. — targetFieldName это поле в индексе поиска. Дополнительные сведения см. в разделе Сопоставление полей выходных данных из набора навыков.

"outputFieldMappings" : [
      {
        "sourceFieldName" : "/document/organizations", 
        "targetFieldName" : "organizations"
      },
      {
        "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
        "targetFieldName" : "keyphrases"
      },
      {
          "sourceFieldName": "/document/languageCode",
          "targetFieldName": "language",
          "mappingFunction": null
      }      
  ]

Пример. Ключи шифрования

Ключи шифрования — это управляемые клиентом ключи, используемые для дополнительного шифрования. Дополнительные сведения см. в статье Шифрование с помощью ключей, управляемых клиентом, в Azure Key Vault.

{
    "name" : "myindexer",  
    "description" : "a cool indexer",  
    "dataSourceName" : "ordersds",  
    "targetIndexName" : "orders",  
    "schedule" : { "interval" : "PT1H", "startTime" : "2021-01-01T00:00:00Z" },  
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 5 },
    "encryptionKey": (optional) { 
      "keyVaultKeyName": "Name of the Azure Key Vault key used for encryption",
      "keyVaultKeyVersion": "Version of the Azure Key Vault key",
      "keyVaultUri": "URI of Azure Key Vault, also referred to as DNS name, that provides the key. An example URI might be https://my-keyvault-name.vault.azure.net",
      "accessCredentials": (optional, only if not using managed system identity) {
        "applicationId": "Microsoft Entra ID application ID that was granted access permissions to your specified Azure Key Vault",
        "applicationSecret": "Authentication key of the registered application)"}
      }
}

См. также раздел