Добавление ресурса подключения каталога Unity в приложение Databricks

Добавьте Unity Catalog connections как ресурсы Databricks Apps для безопасного доступа к внешним службам и источникам данных. Подключения каталога Unity управляют учетными данными и данными аутентификации, поэтому вам не нужно хардкодить учетные данные в код приложения.

Добавление ресурса подключения каталога Unity

Перед добавлением подключения каталога Unity в качестве ресурса просмотрите предварительные требования к ресурсу приложения.

  1. В разделе "Ресурсы приложения " при создании или изменении приложения нажмите кнопку "Добавить подключение к ресурсу>UC".
  2. Выберите подключение каталога Unity из списка доступных подключений в рабочей области.
  3. Выберите уровень разрешений для приложения:
    • Использование подключения: Предоставляет приложению разрешение на использование подключения для доступа к внешним службам. Соответствует привилегии USE CONNECTION .
  4. (Необязательно) Укажите пользовательский ключ ресурса, который является ссылкой на подключение в конфигурации приложения. Ключ по умолчанию — connection.

При добавлении ресурса подключения каталога Unity:

  • Azure Databricks предоставляет принципалу службы привилегию USE CONNECTION на выбранное подключение.
  • Приложение может получить доступ к внешним службам без непосредственного управления учетными данными.
  • Учетные данные подключения безопасно управляются каталогом Unity и не предоставляются коду приложения.

Переменные среды

При развертывании приложения с ресурсом подключения каталога Unity Azure Databricks предоставляет имя подключения с помощью переменных среды, на которые можно ссылаться с помощью поля valueFrom.

Пример конфигурации:

env:
  - name: UC_CONNECTION_NAME
    valueFrom: connection # Use your custom resource key if different

Использование подключения в приложении:

import os
import requests
from databricks.sdk import WorkspaceClient

# Access the connection name
connection_name = os.getenv("UC_CONNECTION_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Make HTTP request through the connection
response = requests.post(
    f"{w.config.host}/api/2.0/unity-catalog/connections/{connection_name}/proxy/api/v1/resource",
    headers={
        **w.config.authenticate(),
        "Content-Type": "application/json",
        "extra_header_key": "extra_header_value",
    },
    json={"key": "value"},
)

# Process the response
print(response.text)

Дополнительные сведения см. в разделе "Использование переменных среды для доступа к ресурсам".

Удалите ресурс подключения каталога Unity

При удалении ресурса подключения каталога Unity из приложения служебная учётная запись приложения теряет доступ к этому подключению. Само подключение остается неизменным и по-прежнему доступно для других пользователей и приложений, имеющих соответствующие разрешения.

Лучшие практики

При работе с ресурсами подключения каталога Unity следует учитывать следующее:

  • Реализуйте логику обработки ошибок и повторных попыток для сбоев подключения и проблем с сетью.
  • Отслеживайте время отклика API и задержку подключения, особенно для межрегионных или межоблачных запросов.
  • Учитывайте затраты на исходящий трафик при выполнении запросов к внешним службам, особенно для больших объемов данных или высокочастотных вызовов API.
  • Регулярно просматривайте и меняйте учетные данные подключения в соответствии с политиками безопасности.
  • Проверьте ответы API и реализуйте соответствующие значения времени ожидания для внешних вызовов служб.