airflow.providers.google.common.hooks.base_google
¶
此模組包含 Google Cloud API 基礎 Hook。
模組內容¶
類別¶
如果發生超出暫時配額限制的例外狀況,則重試。 |
|
如果操作正在進行中而發生例外狀況,則重試。 |
|
如果發生重新整理憑證的例外狀況,則重試。 |
|
Google 雲端相關 Hook 的基礎 Hook。 |
|
GoogleBaseAsyncHook 繼承自 BaseHook 類別,在觸發器工作程序上執行。 |
函數¶
|
檢查是否發生配額違規錯誤。 |
|
處理正在進行中的操作例外狀況。 |
|
處理重新整理憑證例外狀況。 |
|
從 extra 取得欄位,首先檢查簡短名稱,然後為了回溯相容性,我們檢查帶有前綴的名稱。 |
屬性¶
- airflow.providers.google.common.hooks.base_google.INVALID_KEYS = ['DefaultRequestsPerMinutePerProject', 'DefaultRequestsPerMinutePerUser',...[原始碼]¶
- airflow.providers.google.common.hooks.base_google.is_soft_quota_exception(exception)[原始碼]¶
檢查是否發生配額違規錯誤。
Google 服務的 API 沒有標準化的方式來報告配額違規錯誤。
此函數已透過試錯法調整為以下服務: * Google 翻譯 * Google Vision * Google 文字轉語音 * Google 語音轉文字 * Google Natural Language * Google Video Intelligence
- airflow.providers.google.common.hooks.base_google.is_operation_in_progress_exception(exception)[原始碼]¶
處理正在進行中的操作例外狀況。
在操作正在進行中的情況下,某些呼叫會傳回 429(請求過多!)或 409 錯誤(衝突)。
Google Cloud SQL
- airflow.providers.google.common.hooks.base_google.is_refresh_credentials_exception(exception)[原始碼]¶
處理重新整理憑證例外狀況。
如果無法取得新權杖,某些呼叫會傳回 502(伺服器錯誤)。
Google BigQuery
- class airflow.providers.google.common.hooks.base_google.retry_if_temporary_quota[原始碼]¶
基底:
tenacity.retry_if_exception
如果發生超出暫時配額限制的例外狀況,則重試。
- class airflow.providers.google.common.hooks.base_google.retry_if_operation_in_progress[原始碼]¶
基底:
tenacity.retry_if_exception
如果操作正在進行中而發生例外狀況,則重試。
- class airflow.providers.google.common.hooks.base_google.retry_if_temporary_refresh_credentials[原始碼]¶
基底:
tenacity.retry_if_exception
如果發生重新整理憑證的例外狀況,則重試。
- airflow.providers.google.common.hooks.base_google.get_field(extras, field_name)[原始碼]¶
從 extra 取得欄位,首先檢查簡短名稱,然後為了回溯相容性,我們檢查帶有前綴的名稱。
- class airflow.providers.google.common.hooks.base_google.GoogleBaseHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[原始碼]¶
基底:
airflow.hooks.base.BaseHook
Google 雲端相關 Hook 的基礎 Hook。
Google Cloud 有一個共用的 REST API 用戶端,其建置方式與您使用的服務無關。此類別有助於建構和授權所需的憑證,然後呼叫 googleapiclient.discovery.build() 以實際探索和建置 Google Cloud 服務的用戶端。
此類別也包含一些雜項輔助函數。
所有衍生自此基礎 Hook 的 Hook 都使用「Google Cloud」連線類型。支援三種驗證方式
預設憑證:僅需要「專案 ID」。您需要設定預設憑證,例如透過
GOOGLE_APPLICATION_DEFAULT
環境變數或從 Google Compute Engine 上的中繼資料伺服器。JSON 金鑰檔案:指定「專案 ID」、「金鑰檔案路徑」和「範圍」。
不支援舊版 P12 金鑰檔案。
UI 中提供的 JSON 資料:指定「金鑰檔案 JSON」。
- 參數
gcp_conn_id (str) – 擷取連線資訊時要使用的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 選擇性服務帳戶,用於模擬使用短期憑證,或用於取得清單中最後一個帳戶的 access_token 所需的鏈結帳戶清單,該帳戶將在請求中模擬。如果設定為字串,則帳戶必須授予原始帳戶服務帳戶權杖建立者 IAM 角色。如果設定為序列,則清單中的身分必須授予直接前一個身分服務帳戶權杖建立者 IAM 角色,清單中的第一個帳戶將此角色授予原始帳戶。
- property client_info: google.api_core.gapic_v1.client_info.ClientInfo[原始碼]¶
傳回用戶端資訊,用於產生 API 呼叫的使用者代理程式。
它可提供更佳的錯誤追蹤。
此物件僅供專為 Google Cloud 建置的 google-cloud-* 程式庫使用。使用探索型 API 的 Google APIs Python Client 不支援此物件。
- property scopes: collections.abc.Sequence[str][原始碼]¶
傳回 OAuth 2.0 範圍。
- 傳回
傳回連線設定中定義的範圍,或預設範圍
- 傳回類型
- static fallback_to_default_project_id(func)[原始碼]¶
為 Google Cloud 專案 ID 提供後備方案。用作裝飾器。
如果專案為 None,則會將其替換為 Hook 驗證身分所用服務帳戶的 project_id。專案 ID 可以透過 project_id kwarg 或透過位置引數中的第一個參數指定。
- 參數
func (Callable[Ellipsis, RT]) – 要包裝的函數
- 傳回
函數呼叫的結果
- 傳回類型
Callable[Ellipsis, RT]
- static provide_gcp_credential_file(func)[原始碼]¶
為應用程式預設憑證 (ADC) 策略支援提供 Google Cloud 憑證。
建議使用
provide_gcp_credential_file_as_context
內容管理器來限制授權資料可用時的範圍。使用內容管理器也讓在一個函數中使用多個連線變得更容易。
- provide_gcp_credential_file_as_context()[原始碼]¶
為應用程式預設憑證 (ADC) 策略支援提供 Google Cloud 憑證。
它可用於為外部程式(例如 gcloud)提供憑證,這些程式預期
GOOGLE_APPLICATION_CREDENTIALS
環境變數中有授權檔案。
- provide_authorized_gcloud()[原始碼]¶
使用目前的憑證提供個別的 gcloud 設定。
gcloud 工具僅允許您登入 Google Cloud -
gcloud auth login
和應用程式預設憑證的需求gcloud auth application-default login
。在我們的案例中,我們希望所有命令僅使用 ADCm 中的憑證,因此我們需要手動在 gcloud 中設定憑證。
- class airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook(**kwargs)[原始碼]¶
基底:
airflow.hooks.base.BaseHook
GoogleBaseAsyncHook 繼承自 BaseHook 類別,在觸發器工作程序上執行。
- async get_token(*, session=None)[原始碼]¶
傳回 Token 執行個體,以用於 [gcloud-aio](https://talkiq.github.io/gcloud-aio/) 用戶端。