GOOGLE ADS

Dienstag, 19. April 2022

GCP-Anmeldedaten zu Airflow über die Befehlszeile hinzufügen

Mit Airflow können wir Verbindungsinformationen über Befehlszeilen- Airflow-Verbindungen hinzufügen. Dies kann bei der automatisierten Bereitstellung von Airflow-Installationen über Ansible oder andere Dev-Ops-Tools helfen.

Es ist unklar, wie Verbindungen zur Google Cloud-Plattform (Dienstkonten) über die Befehlszeile zu ariflow hinzugefügt werden können.


Lösung des Problems

Vor Airflow 1.9 zeigt das folgende Beispiel, wie ein DAG verwendet wird, um Verbindungsinformationen hinzuzufügen: 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()

Ab Airflow 1.9 kann man:

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"}'

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...