2017-06-22 2 views
2

Je souhaite créer une connexion S3 sans interagir avec l'interface graphique Airflow. Est-il possible via airflow.cfg ou ligne de commande?Création d'une connexion en dehors de l'interface graphique Airflow

Nous utilisons le paramètre de connexion rôle et suivant AWS fonctionne pour nous: { "aws_account_id": "xxxx", "role_arn": "yyyyy"}

Ainsi, la création manuelle connexion sur l'interface graphique pour S3 travaille , nous voulons maintenant automatiser ce processus et que nous voulons ajouter dans le cadre du processus de déploiement Airflow. Tout travail autour?

Répondre

0

j'ai pu le comprendre après avoir vérifié S3_hook.py

Par exemple:

export AIRFLOW_CONN_S3_DEFAULT={"aws_account_id":"99999999","role_arn":"bbbbb"} 

ici:

  • "S3_DEFAULT" est l'identifiant de connexion ici
  • Et passer l'identifiant de compte AWS et role_arn et créer une variable d'environnement.
+1

Je ne sais pas comment vous avez cela fonctionne, comme BaseHook ne prévoit pas JSON dans la variable d'environnement mais un URI: https://github.com/apache/incubator-airflow/blob/master/airflow/hooks/base_hook.py#L59-L64 – andresp

2

Vous pouvez utiliser le CLI du flux d'air. Malheureusement, il n'y a pas de support pour les connexions d'édition, de sorte que vous auriez à supprimer et ajouter dans le cadre de votre processus de déploiement, par exemple:

airflow connections -d --conn_id 'aws_default' 
airflow connections -a --conn_id 'aws_default' --conn_uri 'aws:' --conn_extra '{"region_name": "eu-west-1"}'