Справочник по подключению Elastic Box
Подключение Box написано на Python с использованием фреймворка подключений Elastic.
Просмотреть исходный код этого подключения (ветка 8.17, совместима с Elastic 8.17).
Справочник по управляемому подключению Elastic
Просмотреть справку по управляемому подключению Elastic
Доступность и предварительные требования
Этот коннектор доступен в качестве управляемого коннектора начиная с версии Elastic 8.14.0.
Чтобы использовать этот коннектор напрямую в Elastic Cloud, выполните все требования к управляемым коннекторам.
Этот коннектор находится в техническом предварительном просмотре и может быть изменён. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Создайте коннектор Box
Используйте интерфейс
Чтобы создать новый коннектор Box:
- В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из основного меню или используйте поле глобального поиска.
- Следуйте инструкциям для создания нового родного коннектора Box.
Для дополнительных операций см. Интерфейс коннекторов в Kibana.
Используйте API
Вы можете использовать Elasticsearch API создания коннекторов для создания нового родного коннектора Box.
Например:
resp = client.connector.put(
connector_id="my-{service-name-stub}-connector",
index_name="my-elasticsearch-index",
name="Content synced from {service-name}",
service_type="{service-name-stub}",
is_native=True,
)
print(resp) const response = await client.connector.put({
connector_id: "my-{service-name-stub}-connector",
index_name: "my-elasticsearch-index",
name: "Content synced from {service-name}",
service_type: "{service-name-stub}",
is_native: true,
});
console.log(response); PUT _connector/my-box-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Box",
"service_type": "box",
"is_native": true
} Вам также потребуется создать ключ API для использования коннектором.
Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программированного создания ключей API.
Чтобы создать ключ API для коннектора:
-
Запустите следующую команду, заменив значения в соответствии с указаниями. Обратите внимание на значения
idиencodedиз ответа:resp = client.security.create_api_key( name="my-connector-api-key", role_descriptors={ "my-connector-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": False } ] } }, ) print(resp)const response = await client.security.createApiKey({ name: "my-connector-api-key", role_descriptors: { "my-connector-connector-role": { cluster: ["monitor", "manage_connector"], indices: [ { names: [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*", ], privileges: ["all"], allow_restricted_indices: false, }, ], }, }, }); console.log(response);POST /_security/api_key { "name": "my-connector-api-key", "role_descriptors": { "my-connector-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "my-index_name", ".search-acl-filter-my-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ] } } } -
Используйте значение
encodedдля хранения секрета коннектора и обратите внимание на значениеidиз ответа:resp = client.perform_request( "POST", "/_connector/_secret", headers={"Content-Type": "application/json"}, body={ "value": "encoded_api_key" }, ) print(resp)const response = await client.transport.request({ method: "POST", path: "/_connector/_secret", body: { value: "encoded_api_key", }, }); console.log(response);POST _connector/_secret { "value": "encoded_api_key" } -
Используйте ключ API
idи секрет коннектораidдля обновления коннектора:resp = client.connector.update_api_key_id( connector_id="my_connector_id>", api_key_id="API key_id", api_key_secret_id="secret_id", ) print(resp)const response = await client.connector.updateApiKeyId({ connector_id: "my_connector_id>", api_key_id: "API key_id", api_key_secret_id: "secret_id", }); console.log(response);PUT /_connector/my_connector_id>/_api_key_id { "api_key_id": "API key_id", "api_key_secret_id": "secret_id" }
Для получения подробной информации обо всех доступных API коннекторов обратитесь к документации API Elasticsearch.
Использование
Для использования этого коннектора в качестве самостоятельно управляемого коннектора используйте плитку Box из списка коннекторов ИЛИ рабочий процесс Настроенного коннектора.
Для дополнительных операций см. Интерфейс коннекторов в Kibana.
Авторизация API Box
Бесплатный аккаунт Box
Создайте пользовательскую авторизацию Box (OAuth 2.0) приложение
Вам необходимо создать приложение OAuth в консоли разработчиков Box, выполнив следующие действия:
- Зарегистрируйте новое приложение в консоли разработчиков Box с пользовательским приложением и выберите Авторизацию пользователя (OAuth 2.0).
- Добавьте URL веб-страницы в URL-адреса перенаправления, к которому у вас есть доступ.
- Установите флажок "Запись всех файлов и папок, хранящихся в Box" в Разрешениях приложения.
- После создания приложения значения ID клиента и Секрет клиента будут доступны во вкладке настроек. Пожалуйста, сохраните их.
Сгенерировать токен обновления
Чтобы сгенерировать токен обновления, выполните следующие действия:
-
Перейдите по следующему URL, заменив
<CLIENT_ID>на значение ID клиента, сохраненное ранее. Например:https://account.box.com/api/oauth2/authorize?response_type=code&client_id=<CLIENT_ID>
- Предоставьте доступ к своему приложению.
- Теперь вы будете перенаправлены на веб-страницу, которую вы настроили в URL-адресах перенаправления, и ответ HTTP должен содержать код авторизации, который вы будете использовать для генерации токена обновления. Примечание: коды авторизации для генерации токенов обновления могут быть использованы только один раз и действуют только 30 секунд.
-
В терминале запустите следующую команду
curl, заменив<AUTHORIZATION_CODE>,<CLIENT_ID> and <CLIENT_SECRET>на ранее сохраненные значения:curl -i -X POST "https://api.box.com/oauth2/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=<CLIENT_ID>" \ -d "client_secret=<CLIENT_SECRET>" \ -d "code=<AUTHORIZATION_CODE>" \ -d "grant_type=authorization_code"Сохраните токен обновления из ответа. Вам понадобится он для настройки коннектора.
Корпоративный аккаунт Box
Создайте серверную авторизацию Box (разрешение на предоставление учетных данных клиента) пользовательское приложение
- Зарегистрируйте новое приложение в консоли разработчиков Box с пользовательским приложением и выберите Серверную авторизацию (разрешение на предоставление учетных данных клиента).
-
Установите следующие разрешения:
- "Запись всех файлов и папок, хранящихся в Box" в Разрешениях приложения
- "Выполнение вызовов API с заголовком как-от имени пользователя" в Дополнительные возможности
- Выберите
App + Enterprise Accessв Уровне доступа к приложению. - Авторизуйте своё приложение из консоли администратора. Если у вас нет разрешения, вам может потребоваться отправить приложение на авторизацию. Сохраните Учетные данные клиента и ID предприятия. Вам понадобятся они для настройки коннектора.
Настройка
-
Box Account(обязательно) - Выпадающий список для определения типа учетной записи Box:
Box Free AccountилиBox Enterprise Account. Значение по умолчанию —Box Free Account. -
Client ID(обязательно) - ID клиента для аутентификации с экземпляром Box.
-
Client Secret(обязательно) - Секрет клиента для аутентификации с экземпляром Box.
-
Refresh Token(обязательно, если учетная запись Box — Box Free) - Токен обновления для генерации токена доступа. ПРИМЕЧАНИЕ: Если процесс прервётся, вам потребуется сгенерировать новый токен обновления.
-
Enterprise ID(обязательно, если учетная запись Box — Box Enterprise) - ID предприятия для аутентификации с экземпляром Box.
Извлечение содержимого
Обратитесь к Извлечение содержимого.
Документы и синхронизации
Коннектор синхронизирует следующие объекты и сущности:
- Файлы
- Папки
- Файлы размером более 10 МБ не будут извлечены.
- Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии.
Известные проблемы
Известные проблемы для этого коннектора отсутствуют. Для получения списка известных проблем для всех коннекторов см. Известные проблемы.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
Справочник по самостоятельно управляемому соединителю
Просмотреть справочник по самостоятельно управляемому соединителю
Доступность и предварительные требования
Этот коннектор доступен как самостоятельный самоуправляемый коннектор. Для использования этого коннектора, выполните все предварительные требования для самоуправляемых коннекторов.
Этот коннектор находится в стадии технического предварительного просмотра и может быть изменен. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Создание коннектора Box
Использование пользовательского интерфейса
Для создания нового коннектора Box:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержание → Коннекторы из главного меню или воспользуйтесь полем глобального поиска.
- Следуйте инструкциям по созданию нового Box самоуправляемого коннектора.
Использование API
Вы можете использовать Elasticsearch API создания коннекторов для создания нового самоуправляемого коннектора Box.
Например:
resp = client.connector.put(
connector_id="my-{service-name-stub}-connector",
index_name="my-elasticsearch-index",
name="Content synced from {service-name}",
service_type="{service-name-stub}",
)
print(resp) const response = await client.connector.put({
connector_id: "my-{service-name-stub}-connector",
index_name: "my-elasticsearch-index",
name: "Content synced from {service-name}",
service_type: "{service-name-stub}",
});
console.log(response); PUT _connector/my-box-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Box",
"service_type": "box"
} Вам также потребуется создать ключ API для использования коннектором.
Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программного создания ключей API.
Для создания ключа API для коннектора:
-
Выполните следующую команду, заменив значения там, где необходимо. Обратите внимание на значения
encodedиз ответа:resp = client.security.create_api_key( name="connector_name-connector-api-key", role_descriptors={ "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": False } ] } }, ) print(resp)const response = await client.security.createApiKey({ name: "connector_name-connector-api-key", role_descriptors: { "connector_name-connector-role": { cluster: ["monitor", "manage_connector"], indices: [ { names: [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*", ], privileges: ["all"], allow_restricted_indices: false, }, ], }, }, }); console.log(response);POST /_security/api_key { "name": "connector_name-connector-api-key", "role_descriptors": { "connector_name-connector-role": { "cluster": [ "monitor", "manage_connector" ], "indices": [ { "names": [ "index_name", ".search-acl-filter-index_name", ".elastic-connectors*" ], "privileges": [ "all" ], "allow_restricted_indices": false } ] } } } - Обновите файл
config.ymlсо значением ключа APIencoded.
Обратитесь к документации API Elasticsearch для получения подробной информации обо всех доступных API коннекторов.
Использование
Для использования этого коннектора как самоуправляемого коннектора, используйте плитку Box из списка коннекторов ИЛИ рабочий процесс Настроенный коннектор.
Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.
Авторизация API Box
Учетная запись Box Free
Создайте пользовательскую аутентификацию Box (OAuth 2.0) приложения
Вам нужно создать приложение OAuth в консоли разработчиков Box, выполнив следующие шаги:
- Зарегистрируйте новое приложение в консоли разработчиков Box с пользовательским приложением и выберите аутентификацию пользователя (OAuth 2.0).
- Добавьте URL веб-страницы в URI перенаправления, доступные вам.
- Установите флажок «Запись всех файлов и папок, хранящихся в Box» в разделах области видимости приложения.
- После создания приложения значения ID клиента и секрет клиента доступны на вкладке конфигурации. Сохраните их.
Генерация токена обновления
Для генерации токена обновления выполните следующие действия:
-
Перейдите по следующему URL, заменив
<CLIENT_ID>значением ID клиента, сохраненным ранее. Например:https://account.box.com/api/oauth2/authorize?response_type=code&client_id=<CLIENT_ID>
- Предоставьте доступ к вашему приложению.
- Вас перенаправят на веб-страницу, которую вы настроили в URI перенаправления, и ответ HTTP должен содержать код авторизации, который вы будете использовать для генерации токена обновления. Примечание: Коды авторизации для генерации токенов обновления могут быть использованы только один раз и действительны только в течение 30 секунд.
-
В терминале выполните следующую
curlкоманду, заменив<AUTHORIZATION_CODE>,<CLIENT_ID> and <CLIENT_SECRET>на сохраненные значения:curl -i -X POST "https://api.box.com/oauth2/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=<CLIENT_ID>" \ -d "client_secret=<CLIENT_SECRET>" \ -d "code=<AUTHORIZATION_CODE>" \ -d "grant_type=authorization_code"Сохраните токен обновления из ответа. Вам понадобится он для настройки коннектора.
Учетная запись Box Enterprise
Создайте серверную аутентификацию Box (присвоение полномочий клиенту) пользовательское приложение
- Зарегистрируйте новое приложение в консоли разработчиков Box с пользовательским приложением и выберите Серверная аутентификация (присвоение полномочий клиенту).
-
Установите следующие разрешения:
- «Запись всех файлов и папок, хранящихся в Box» в областях видимости приложения
- «Выполнение вызовов API с заголовком как-от имени пользователя» в расширенных функциях
- Выберите
App + Enterprise Accessв уровне доступа к приложению. - Авторизуйте свое приложение в консоли администратора. Если у вас нет разрешений, вам может потребоваться подать заявку на авторизацию. Сохраните кредиты клиента и ID предприятия. Вам понадобятся эти данные для настройки коннектора.
Настройка
-
Box Account(обязательно) - Выпадающий список для определения типа учетной записи Box:
Box Free AccountилиBox Enterprise Account. Значение по умолчанию —Box Free Account. -
Client ID(обязательно) - ID клиента для аутентификации с экземпляром Box.
-
Client Secret(обязательно) - Секрет клиента для аутентификации с экземпляром Box.
-
Refresh Token(обязательно, если учетная запись Box — Box Free) - Токен обновления для генерации токена доступа. ПРИМЕЧАНИЕ: Если процесс прервётся, вам потребуется сгенерировать новый токен обновления.
-
Enterprise ID(обязательно, если учетная запись Box — Box Enterprise) - ID предприятия для аутентификации с экземпляром Box.
Развертывание с использованием Docker
Вы можете развернуть коннектор Box как самоуправляемый коннектор с помощью Docker. Следуйте этим инструкциям.
Шаг 1: Загрузка образца файла конфигурации
Загрузите файл образца конфигурации. Вы можете загрузить его вручную или выполнить следующую команду:
curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml
Не забудьте обновить значение аргумента --output, если имя вашей директории отличается или вы хотите использовать другое имя файла конфигурации.
Шаг 2: Обновление файла конфигурации для вашего самоуправляемого коннектора
Обновите файл конфигурации следующими настройками, чтобы соответствовать вашей среде:
-
elasticsearch.host -
elasticsearch.api_key -
connectors
Если вы запускаете службу коннектора на контейнеризированной версии Elasticsearch и Kibana, ваш файл конфигурации будет выглядеть так:
# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>
connectors:
-
connector_id: <CONNECTOR_ID_FROM_KIBANA>
service_type: box
api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead Использование elasticsearch.api_key — рекомендуемый метод аутентификации. Однако вы также можете использовать elasticsearch.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.
Примечание: Вы можете изменить другие настройки по умолчанию, просто раскомментировав соответствующие настройки в файле конфигурации и изменив их значения.
Шаг 3: Запуск Docker образа
Запустите Docker образ с помощью следующей команды:
docker run \ -v ~/connectors-config:/config \ --network "elastic" \ --tty \ --rm \ docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \ /app/bin/elastic-ingest \ -c /config/config.yml
Обратитесь к DOCKER.md в репозитории elastic/connectors для получения дополнительной информации.
Найдите все доступные Docker образы в официальном репозитории.
У нас также есть вариант быстрого запуска самоуправляемого коннектора с использованием Docker Compose, позволяющий одновременно запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к этому README в репозитории elastic/connectors для получения дополнительной информации.
Извлечение содержимого
Обратитесь к Извлечение содержимого.
Документы и синхронизация
Коннектор синхронизирует следующие объекты и сущности:
- Файлы
- Папки
- Файлы размером более 10 МБ не будут извлечены.
- Разрешения не синхронизируются. Все документы , индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации по умолчанию поддерживаются всеми коннекторами.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии.
Тестирование от начала до конца
Фреймворк коннектора позволяет операторам запускать функциональные тесты на реальном источнике данных. Подробности см. в разделе Тестирование коннекторов.
Для выполнения тестирования от начала до конца для коннектора Box выполните следующую команду:
$ make ftest NAME=box
Для более быстрых тестов добавьте флаг DATA_SIZE=small:
make ftest NAME=box DATA_SIZE=small
Известные проблемы
Для этого коннектора известных проблем нет. Список известных проблем для всех коннекторов см. в разделе Известные проблемы.
Устранение неполадок
См. Устранение неполадок.
Безопасность
См. Безопасность.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-box.html