airflow.providers.amazon.aws.hooks.base_aws

此模块包含 Base AWS Hook。

另请参阅

有关如何使用此 Hook 的更多信息,请参阅指南: Amazon Web Services 连接

属性

BaseAwsConnection

SessionFactory

BaseSessionFactory

Base AWS Session Factory 类。

AwsGenericHook

用于与 AWS 交互的通用类。

AwsBaseHook

用于与 AWS 交互的基类。

函数

resolve_session_factory()

解析自定义 SessionFactory 类。

模块内容

airflow.providers.amazon.aws.hooks.base_aws.BaseAwsConnection[source]
airflow.providers.amazon.aws.hooks.base_aws.BaseSessionFactory(conn, region_name=None, config=None)[source]

基类: airflow.utils.log.logging_mixin.LoggingMixin

Base AWS Session Factory 类。

这处理同步和异步的 boto 会话创建。它可以处理大多数 AWS 支持的身份验证方法。

用户也可以从这个类派生,以完全控制 boto3 会话创建或支持自定义联合。

注意

并非为同步会话实现的所有功能都适用于异步会话。

另请参阅

属性 conn: airflow.providers.amazon.aws.utils.connection_wrapper.AwsConnectionWrapper[source]

缓存的 AWS 连接包装器。

属性 basic_session: boto3.session.Session[source]

带有基本 boto3.session.Session 的缓存属性。

属性 extra_config: dict[str, Any][source]

AWS 连接 extra_config。

属性 region_name: str | None[source]

AWS 区域名称只读属性。

属性 config: botocore.config.Config | None[source]

botocore 客户端配置只读属性。

属性 role_arn: str | None[source]

从 AWS 连接中假设角色 ARN。

get_async_session()[source]
create_session(deferrable=False)[source]

根据连接配置创建 boto3 或 aiobotocore 会话。

airflow.providers.amazon.aws.hooks.base_aws.AwsGenericHook(aws_conn_id=default_conn_name, verify=None, region_name=None, client_type=None, resource_type=None, config=None)[source]

基类: airflow.hooks.base.BaseHook, Generic[BaseAwsConnection]

用于与 AWS 交互的通用类。

此类提供对 boto3 Python 库的轻量级封装。

参数:
conn_name_attr = 'aws_conn_id'[source]
default_conn_name = 'aws_default'[source]
conn_type = 'aws'[source]
hook_name = 'Amazon Web Services'[source]
aws_conn_id = 'aws_default'[source]
client_type = None[source]
resource_type = None[source]
属性 conn_config: airflow.providers.amazon.aws.utils.connection_wrapper.AwsConnectionWrapper[source]

获取 Airflow 连接对象并用辅助函数封装(缓存)。

属性 service_name: str[source]

从 Hook 参数中提取的 botocore/boto3 服务名称。

属性 service_config: dict[source]

从 AWS 连接获取的 Hook 特定服务的配置。

属性 region_name: str | None[source]

AWS 区域名称只读属性。

属性 config: botocore.config.Config[source]

botocore 客户端配置只读属性。

属性 verify: bool | str | None[source]

验证或不验证 SSL 证书 boto3 客户端/资源只读属性。

属性 account_id: str[source]

返回关联的 AWS 账户 ID。

get_session(region_name=None, deferrable=False)[source]

获取底层的 boto3.session.Session(region_name=region_name)。

get_client_type(region_name=None, config=None, deferrable=False)[source]

使用 boto3 会话获取底层的 boto3 客户端。

get_resource_type(region_name=None, config=None)[source]

使用 boto3 会话获取底层的 boto3 资源。

属性 conn: BaseAwsConnection[source]

获取底层的 boto3 客户端/资源(已缓存)。

返回:

boto3.client or boto3.resource

返回类型:

BaseAwsConnection

属性 async_conn[source]

[已弃用] 获取 aiobotocore 客户端以用于异步操作。

此属性已弃用。在异步上下文中访问它会导致事件循环阻塞。请改用异步方法 get_async_conn

异步 get_async_conn()[source]

获取 aiobotocore 客户端以用于异步操作。

属性 conn_client_meta: botocore.client.ClientMeta[source]

从 Hook 连接中获取 botocore 客户端元数据(已缓存)。

属性 conn_region_name: str[source]

从 Hook 连接中获取实际的 AWS 区域名称(已缓存)。

属性 conn_partition: str[source]

从 Hook 连接中获取关联的 AWS 区域分区(已缓存)。

get_conn()[source]

获取底层的 boto3 客户端/资源(已缓存)。

实现此方法是为了使缓存按预期工作。它的存在是为了兼容依赖于 super().get_conn() 方法的子类。

返回:

boto3.client or boto3.resource

返回类型:

BaseAwsConnection

get_credentials(region_name=None)[source]

获取底层的 botocore.Credentials 对象。

此对象包含以下身份验证属性:access_key、secret_key 和 token。通过使用此方法,secret_key 和 token 也将在任务日志中被屏蔽。

expand_role(role, region_name=None)[source]

获取角色的 Amazon Resource Name (ARN)。

如果 IAM 角色已经是 IAM 角色 ARN,则返回值不变。

参数:
  • role (str) – IAM 角色名称或 ARN

  • region_name (str | None) – 获取凭据的可选区域名称

返回:

IAM 角色 ARN

返回类型:

str

静态 retry(should_retry)[source]

在超出临时配额限制时重复请求。

类方法 get_ui_field_behaviour()[source]

返回 AWS 连接的自定义 UI 字段行为。

test_connection()[source]

通过调用 AWS STS(安全令牌服务)的 GetCallerIdentity API 来测试 AWS 连接。

属性 waiter_path: os.PathLike[str] | None[source]
get_waiter(waiter_name, parameters=None, config_overrides=None, deferrable=False, client=None)[source]

按名称获取 Waiter。

首先检查是否存在具有提供的 waiter_name 的自定义 Waiter,如果存在则使用它,否则将检查服务客户端以查找与名称匹配的 Waiter 并将其传递。

如果 deferrable 为 True,则 Waiter 将是一个 AIOWaiter,从作为参数传递的客户端生成。如果 deferrable 为 True,则必须提供 client

参数:
  • waiter_name (str) – Waiter 的名称。该名称应与 Waiter 模型文件中的键名完全匹配(通常为驼峰式大小写)。

  • parameters (dict[str, str] | None) – 将扫描等待器配置以查找该字典的键,并将其替换为对应的值。如果自定义等待器具有需要展开的此类键,则需要在此处提供。注意:如果参数包含在 config_overrides 中,则无法使用此选项。

  • config_overrides (dict[str, Any] | None) – 将更新等待器配置中提供的键的值。仅指定键将被更新。

  • deferrable (bool) – 如果为 True,则等待器将是异步自定义等待器。在这种情况下,必须提供异步客户端。

  • client – 用于等待器操作的客户端

list_waiters()[source]

返回一个列表,其中包含该服务的所有等待器(官方和自定义)的名称。

class airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook(aws_conn_id=default_conn_name, verify=None, region_name=None, client_type=None, resource_type=None, config=None)[source]

Bases: AwsGenericHook[Union[boto3.client, boto3.resource]]

用于与 AWS 交互的基类。

此类提供对 boto3 Python 库的轻量级封装。

参数:
airflow.providers.amazon.aws.hooks.base_aws.resolve_session_factory()[source]

解析自定义 SessionFactory 类。

airflow.providers.amazon.aws.hooks.base_aws.SessionFactory[source]

此条目是否有帮助?