airflow.providers.google.common.hooks.base_google¶
此模組包含一個 Google Cloud API 基礎 Hook。
屬性¶
類¶
如果因超出臨時配額限制而出現異常,則重試。 |
|
如果在操作進行中時出現異常,則重試。 |
|
如果因重新整理憑據時出現異常,則重試。 |
|
Google Cloud 相關 Hook 的基礎 Hook。 |
|
GoogleBaseAsyncHook 繼承自 BaseHook 類,並在觸發器工作器上執行。 |
函式¶
|
檢查配額違規錯誤。 |
|
處理操作進行中異常。 |
|
處理重新整理憑據異常。 |
|
從 extra 獲取欄位,首先檢查短名稱,然後為了向後相容,檢查帶字首的名稱。 |
模組內容¶
- airflow.providers.google.common.hooks.base_google.INVALID_KEYS = ['DefaultRequestsPerMinutePerProject', 'DefaultRequestsPerMinutePerUser',...[source]¶
- airflow.providers.google.common.hooks.base_google.INVALID_REASONS = ['userRateLimitExceeded'][source]¶
- airflow.providers.google.common.hooks.base_google.is_soft_quota_exception(exception)[source]¶
檢查配額違規錯誤。
Google 服務 API 沒有標準化的方式來報告配額違規錯誤。
此函式已透過反覆試驗適應以下服務: * Google Translate * Google Vision * Google Text-to-Speech * Google Speech-to-Text * Google Natural Language * Google Video Intelligence
- airflow.providers.google.common.hooks.base_google.is_operation_in_progress_exception(exception)[source]¶
處理操作進行中異常。
在操作進行中時,某些呼叫會返回 429 (請求過多!) 或 409 錯誤 (衝突)。
Google Cloud SQL
- airflow.providers.google.common.hooks.base_google.is_refresh_credentials_exception(exception)[source]¶
處理重新整理憑據異常。
在無法獲取新令牌時,某些呼叫會返回 502 (伺服器錯誤)。
Google BigQuery
- class airflow.providers.google.common.hooks.base_google.retry_if_temporary_quota[source]¶
基類:
tenacity.retry_if_exception如果因超出臨時配額限制而出現異常,則重試。
- class airflow.providers.google.common.hooks.base_google.retry_if_operation_in_progress[source]¶
基類:
tenacity.retry_if_exception如果在操作進行中時出現異常,則重試。
- class airflow.providers.google.common.hooks.base_google.retry_if_temporary_refresh_credentials[source]¶
基類:
tenacity.retry_if_exception如果因重新整理憑據時出現異常,則重試。
- airflow.providers.google.common.hooks.base_google.get_field(extras, field_name)[source]¶
從 extra 獲取欄位,首先檢查短名稱,然後為了向後相容,檢查帶字首的名稱。
- class airflow.providers.google.common.hooks.base_google.GoogleBaseHook(gcp_conn_id='google_cloud_default', impersonation_chain=None, **kwargs)[source]¶
基類:
airflow.hooks.base.BaseHookGoogle Cloud 相關 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 資料:指定“Keyfile JSON”。
- 引數:
gcp_conn_id (str) – 獲取連線資訊時使用的連線 ID。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可選的服務賬號,用於使用短期憑據進行模擬,或獲取列表中最後一個賬號(將在請求中模擬)的 access_token 所需的賬號鏈式列表。如果設定為字串,該賬號必須授予發起賬號 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須授予緊前身份 Service Account Token Creator IAM 角色,列表中第一個賬號將此角色授予發起賬號。
- property scopes: collections.abc.Sequence[str][source]¶
返回 OAuth 2.0 範圍。
- 返回:
返回連線配置中定義的範圍或預設範圍
- 返回型別:
- static fallback_to_default_project_id(func)[source]¶
為 Google Cloud 專案 ID 提供回退。用作裝飾器。
如果專案為 None,則將其替換為 Hook 認證所使用的服務賬號的專案 ID。專案 ID 可以透過 project_id kwarg 或位置引數中的第一個引數指定。
- 引數:
func (Callable[Ellipsis, RT]) – 要包裝的函式
- 返回:
函式呼叫的結果
- 返回型別:
Callable[Ellipsis, RT]
- static provide_gcp_credential_file(func)[source]¶
為應用預設憑據 (ADC) 策略支援提供 Google Cloud 憑據。
建議使用
provide_gcp_credential_file_as_context上下文管理器來限制授權資料可用時的範圍。使用上下文管理器也更容易在一個函式中使用多個連線。
- provide_gcp_credential_file_as_context()[source]¶
為應用預設憑據 (ADC) 策略支援提供 Google Cloud 憑據。
它可用於為需要
GOOGLE_APPLICATION_CREDENTIALS環境變數中授權檔案的外部程式(例如 gcloud)提供憑據。
- provide_authorized_gcloud()[source]¶
提供一個帶有當前憑據的獨立 gcloud 配置。
gcloud 工具只允許您登入 Google Cloud -
gcloud auth login,以及用於應用預設憑據的gcloud auth application-default login。在我們的例子中,我們希望所有命令都只使用 ADCm 的憑據,因此我們需要手動在 gcloud 中配置憑據。
- class airflow.providers.google.common.hooks.base_google.GoogleBaseAsyncHook(**kwargs)[source]¶
基類:
airflow.hooks.base.BaseHookGoogleBaseAsyncHook 繼承自 BaseHook 類,並在觸發器工作器上執行。
- async get_token(*, session=None)[source]¶
返回一個 Token 例項,供 [gcloud-aio](https://talkiq.github.io/gcloud-aio/) 客戶端使用。