Я пытаюсь создать Airflow DAG, которые читают данные из (или записывают данные) из некоторых электронных таблиц Google. Среди соединений в Airflow я сохранил соединение типа «Google Cloud Platform», которое включает в себя project_id, области действия и «Keyfile JSON», словарь с «type», «project_id», «private_key_id», «private_key», «client_email "," client_id "," auth_uri "," token_uri "," auth_provider_x509_cert_url "," client_x509_cert_url "
Я могу подключиться к таблице Google Spread, используя
cred_dict = ... same as what I saved in Keyfile JSON ...
creds = ServiceAccountCredentials.from_json_keyfile_dict(cred_dict,scope)
client = gspread.authorize(creds)
sheet = client.open(myfile).worksheet(mysheet) # works!
Но я бы предпочелне писать явно ключ в коде и вместо этого импортировать его из подключений Airflow.
Я хотел бы знать, существует ли решение, подобное
from airflow.hooks.some_hook import get_the_keyfile
conn_id = my_saved_gcp_connection
cred_dict = get_the_keyfile(gcp_conn_id=conn_id)
creds = ServiceAccountCredentials.from_json_keyfile_dict(cred_dict,scope)
client = gspread.authorize(creds)
sheet = client.open(myfile).worksheet(mysheet)
Iвидите, есть несколько хуков к соединениям GCP https://airflow.apache.org/howto/connection/gcp.html, но мои небольшие знания заставляют меня не понимать, какой из них использовать и какую функцию (если есть) извлечь файл ключа из сохраненного соединения.
Любое предложениебудет приветствоваться:)