Добавить учетные данные GCP в поток воздуха через командную строку - PullRequest
0 голосов
/ 26 апреля 2018

Воздушный поток позволяет нам добавлять информацию о соединении через командную строку воздушный поток соединения . Это может помочь с автоматическим развертыванием установок воздушного потока с помощью ANSILE или других инструментов разработчика.

Неясно, каким образом подключения к облачной платформе Google (учетные записи служб) могут быть добавлены в ariflow с помощью командной строки.

1 Ответ

0 голосов
/ 26 апреля 2018

Предварительный поток воздуха 1.9. В следующем примере показано, как использовать группу обеспечения доступности баз данных для добавления информации о соединении: https://gist.github.com/yu-iskw/42f9f0aa6f2ff0a2a375d43881e13b49

def add_gcp_connection(ds, **kwargs):
    """"Add a airflow connection for GCP"""
    new_conn = Connection(
        conn_id=<CONNECTION_ID>,
        conn_type='google_cloud_platform',
    )
    scopes = ['https://www.googleapis.com/auth/cloud-platform']
    conn_extra = {
        "extra__google_cloud_platform__scope": ",".join(scopes),
        "extra__google_cloud_platform__project":
            "<GCP_PROJECT_NAME>",
        "extra__google_cloud_platform__key_path":
            "<GCP_CREDENTIALS_ABSOLUTE_PATH.json>"
    }
    conn_extra_json = json.dumps(conn_extra)
    new_conn.set_extra(conn_extra_json)

    session = settings.Session()
    session.add(new_conn)
    session.commit()

Из воздушного потока 1.9 вперёд можно:

airflow connections -a \
  --conn_id=<CONNECTION_ID> \
  --conn_type=google_cloud_platform \
  --conn_extra='{ "extra__google_cloud_platform__key_path":" '`
        `'<GCP_CREDENTIALS_ABSOLUTE_PATH.json>", '`
    `'"extra__google_cloud_platform__project": '`
        `'"<GCP_PROJECT_NAME>", '`
    `'"extra__google_cloud_platform__scope":  '`
        `'"https://www.googleapis.com/auth/cloud-platform"}'
...