Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Задание Apache Airflow работает под управлением Apache Airflow.
В настоящее время частные сети и виртуальные сети не поддерживаются заданиями Apache Airflow Fabric.
Пакет Python позволяет упорядочивать связанные модули Python в одну иерархию каталогов. Пакет обычно представляется в виде каталога, содержащего специальный файл с именем init.py. В каталоге пакетов можно использовать несколько файлов модуля Python (.py файлов), определяющих функции, классы и переменные. С помощью заданий Apache Airflow вы можете разрабатывать собственные приватные пакеты для добавления пользовательских операторов, хуков, датчиков, подключаемых модулей и т. д.
В этом руководстве вы создадите простой пользовательский оператор в виде пакета Python, добавьте его в качестве требования в задание Apache Airflow и импортируйте частный пакет в виде модуля в DAG-файл.
Разработка пользовательского оператора и тестирование с помощью Apache Airflow Dag
Создайте файл
sample_operator.py, названный так, и сделайте его частным пакетом. Если вам нужна помощь, ознакомьтесь с этим руководством. Создание пакета в Pythonfrom airflow.models.baseoperator import BaseOperator class SampleOperator(BaseOperator): def __init__(self, name: str, **kwargs) -> None: super().__init__(**kwargs) self.name = name def execute(self, context): message = f"Hello {self.name}" return messageЗатем создайте файл
sample_dag.pyDAG Apache Airflow, чтобы протестировать оператор, сделанный на первом шаге.from datetime import datetime from airflow import DAG # Import from private package from airflow_operator.sample_operator import SampleOperator with DAG( "test-custom-package", tags=["example"] description="A simple tutorial DAG", schedule_interval=None, start_date=datetime(2021, 1, 1), ) as dag: task = SampleOperator(task_id="sample-task", name="foo_bar") taskНастройте репозиторий GitHub с
sample_dag.pyфайлом в папкеdags. Затем поместите файл своего частного пакета вplugins. Вы можете использовать такие форматы, какzip,.whlилиtar.gz. Подключите репозиторий Git к заданию Apache Airflow или попробуйте готовый пример в Install-Private-Package.
Добавьте свой пакет в качестве требования
Добавьте пакет в Airflow requirements, используя формат /opt/airflow/git/<repoName>/<pathToPrivatePackage>
Например, если ваш частный пакет находится /dags/test/private.whl в репозитории GitHub, просто добавьте /opt/airflow/git/<repoName>/dags/test/private.whl в среду Airflow.
Примечание.
Не забудьте использовать папку plugins , а не папку dags для размещения собственных пакетов.
Установка частной библиотеки из папки plugins/libs
Если вы не используете подключенный репозиторий Git, вы можете отправить файл колеса непосредственно в папку задания plugins/libs Apache Airflow и ссылаться на него в качестве требования. Этот подход не требует внешнего репозитория.
Загрузите ваш файл
.whlв папкуplugins/libsв хранилище файлов задания Apache Airflow.Добавьте файл колесика в качестве требования, используя относительный формат
plugins/libs/<your-wheel-file>.whlпути.Рассмотрим пример.
plugins/libs/apache_airflow_providers_microsoft_fabric-0.1.0-py3-none-any.whlПерезапустите задание Apache Airflow, чтобы требование вступило в силу.