web-dev-qa-db-fra.com

Existe-t-il un moyen de créer / modifier des connexions via l'API Airflow

Passer au travers Admin -> Connections, nous avons la possibilité de créer/modifier les paramètres d'une connexion, mais je me demande si je peux faire la même chose via l'API pour que je puisse définir les connexions par programmation

airflow.models.Connection semble ne traiter que de la connexion à l'instance au lieu de l'enregistrer dans la liste. Cela semble être une fonction qui aurait dû être implémentée, mais je ne sais pas où je peux trouver les documents pour cette fonction spécifique.

11
JChao

La connexion est en fait un modèle que vous pouvez utiliser pour interroger et insérer une nouvelle connexion

from airflow import settings
from airflow.models import Connection
conn = Connection(
        conn_id=conn_id,
        conn_type=conn_type,
        Host=host,
        login=login,
        password=password,
        port=port
) #create a connection object
session = settings.Session() # get the session
session.add(conn)
session.commit() # it will insert the connection object programmatically.
18
mad_

Vous pouvez également ajouter, supprimer et répertorier les connexions de la CLI Airflow si vous devez le faire en dehors du code Python/Airflow, via bash, dans un Dockerfile, etc.

airflow connections --add ...

Usage:

airflow connections [-h] [-l] [-a] [-d] [--conn_id CONN_ID]
                    [--conn_uri CONN_URI] [--conn_extra CONN_EXTRA]
                    [--conn_type CONN_TYPE] [--conn_Host CONN_Host]
                    [--conn_login CONN_LOGIN] [--conn_password CONN_PASSWORD]
                    [--conn_schema CONN_SCHEMA] [--conn_port CONN_PORT]

https://airflow.Apache.org/cli.html#connections

Il ne semble pas que la CLI supporte actuellement la modification d'une connexion existante, mais il y a un problème avec Jira avec un PR ouvert actif sur GitHub.

5
Taylor Edmiston