2017-06-22 2 views
2

Ich möchte eine S3-Verbindung ohne Interaktion mit der Airflow-GUI erstellen. Ist es möglich, durch airflow.cfg oder Befehlszeile?Erstellen einer Verbindung außerhalb der Airflow-GUI

Wir AWS Rolle verwenden und folgenden Verbindungsparameter arbeitet für uns: { "aws_account_id": "xxxx", "role_arn": "yyyyy"}

also manuell Verbindung auf GUI für S3 Erstellung arbeitet Jetzt möchten wir diesen Prozess automatisieren und möchten ihn als Teil des Airflow-Bereitstellungsprozesses hinzufügen. Irgendwelche Arbeiten herum?

Antwort

0

ich war in der Lage, es herauszufinden nach S3_hook.py

Zum Beispiel Check-out:

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

hier:

  • "S3_DEFAULT" ist die Verbindung ID hier
  • Und die AWS-Konto-ID und role_arn übergeben und eine Umgebungsvariable erstellen.
+1

Ich bin nicht sicher, wie Sie bekam dies funktioniert, wie die BaseHook nicht erwartet JSON in der Umgebungsvariablen, aber ein URI: https://github.com/apache/incubator-airflow/blob/master/airflow/hooks/base_hook.py#L59-L64 – andresp

2

Sie können die Luftstrom-CLI verwenden. Leider gibt es keine Unterstützung für die Bearbeitung Verbindungen, so müßten Sie entfernen und als Teil des Bereitstellungsprozesses hinzufügen, zum Beispiel:

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