airflow.providers.google.common.hooks.base_google
¶
此模块包含 Google Cloud API 基本钩子。
模块内容¶
类¶
如果出现超出临时配额限制的异常,则重试。 |
|
如果出现操作正在进行的异常,则重试。 |
|
如果出现刷新凭据的异常,则重试。 |
|
Google 云相关钩子的基本钩子。 |
|
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 自然语言 * Google 视频智能
- 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 云相关钩子的基本钩子。
Google Cloud 有一个共享的 REST API 客户端,无论您使用哪个服务,它的构建方式都是相同的。此类有助于构建和授权所需的凭据,然后调用 googleapiclient.discovery.build() 来实际发现和构建 Google Cloud 服务的客户端。
该类还包含一些其他辅助函数。
所有由此基本钩子派生的钩子都使用“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[source]¶
返回用于为 API 调用生成用户代理的客户端信息。
它可以更好地跟踪错误。
此对象仅由专门为 Google Cloud 构建的 google-cloud-* 库使用。使用基于 Discovery 的 API 的 Google APIs Python Client 不支持它。
- property scopes: collections.abc.Sequence[str][source]¶
返回 OAuth 2.0 作用域。
- 返回
返回连接配置中定义的作用域,或默认作用域
- 返回类型
- static fallback_to_default_project_id(func)[source]¶
为 Google Cloud 项目 ID 提供回退。用作装饰器。
如果项目为 None,则它将替换为 Hook 验证的服务帐户中的 project_id。可以通过 project_id kwarg 或位置 args 中的第一个参数来指定项目 ID。
- 参数
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 凭据。
- 请参阅
它可以用于为外部程序(例如,gcloud)提供凭据,这些程序期望在
GOOGLE_APPLICATION_CREDENTIALS
环境变量中找到授权文件。
- provide_authorized_gcloud()[source]¶
使用当前凭据提供单独的 gcloud 配置。
gcloud 工具只允许您登录 Google Cloud -
gcloud auth login
,为了满足应用程序默认凭据的需求,需要执行gcloud auth application-default login
。 在我们的场景中,我们希望所有命令都只使用来自 ADC 的凭据,因此我们需要在 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/) 客户端中。