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.BaseHook
Google 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.BaseHook
GoogleBaseAsyncHook 继承自 BaseHook 类,并在触发器工作器上运行。
- async get_token(*, session=None)[source]¶
返回一个 Token 实例,供 [gcloud-aio](https://talkiq.github.io/gcloud-aio/) 客户端使用。