airflow.providers.amazon.aws.hooks.lambda_function

此模块包含 AWS Lambda hook。

LambdaHook

与 AWS Lambda 交互。

模块内容

class airflow.providers.amazon.aws.hooks.lambda_function.LambdaHook(*args, **kwargs)[源]

基础: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook

与 AWS Lambda 交互。

提供 boto3.client("lambda") 的精简封装。

可以指定其他参数(例如 aws_conn_id),并将这些参数传递给底层的 AwsBaseHook。

invoke_lambda(*, function_name, invocation_type=None, log_type=None, client_context=None, payload=None, qualifier=None)[源]

调用 Lambda 函数。

参数:
  • function_name (str) – AWS Lambda 函数名称

  • invocation_type (str | None) – AWS Lambda 调用类型 (RequestResponse, Event 等)

  • log_type (str | None) – 设置为 Tail 以在响应中包含执行日志。仅适用于同步调用的函数。

  • client_context (str | None) – 最多 3,583 字节的 base64 编码数据,包含有关调用客户端的信息,用于通过 context 对象传递给函数。

  • payload (bytes | str | None) – 您希望作为输入提供给 Lambda 函数的 JSON。

  • qualifier (str | None) – AWS Lambda 函数版本或别名。

create_lambda(*, function_name, runtime=None, role, handler=None, code, description=None, timeout=None, memory_size=None, publish=None, vpc_config=None, package_type=None, dead_letter_config=None, environment=None, kms_key_arn=None, tracing_config=None, tags=None, layers=None, file_system_configs=None, image_config=None, code_signing_config_arn=None, architectures=None, ephemeral_storage=None, snap_start=None, logging_config=None)[源]

创建一个 Lambda 函数。

参数:
  • function_name (str) – AWS Lambda 函数名称

  • runtime (str | None) – 函数运行时的标识符。如果部署包是 .zip 文件归档,则 runtime 是必需的。

  • role (str) – 函数执行角色的 Amazon Resource Name (ARN)。

  • handler (str | None) – Lambda 调用以运行您的函数的方法名称。如果部署包是 .zip 文件归档,则 handler 是必需的。

  • code (dict) – 函数代码。

  • description (str | None) – 函数描述。

  • timeout (int | None) – Lambda 在停止函数运行前允许其运行的时间(秒)。

  • memory_size (int | None) – 运行时可用于函数的内存量。增加函数内存也会增加其 CPU 分配。

  • publish (bool | None) – 设置为 true 以在创建期间发布函数第一个版本。

  • vpc_config (Any | None) – 为了连接 VPC 中的 Amazon Web Services 资源,请在 VPC 中指定安全组和子网列表。

  • package_type (str | None) – 部署包类型。容器镜像设置为 Image,.zip 文件归档设置为 Zip

  • dead_letter_config (Any | None) – 死信队列配置,指定 Lambda 在异步事件处理失败时发送事件的队列或主题。

  • environment (Any | None) – 函数代码在执行期间可访问的环境变量。

  • kms_key_arn (str | None) – 用于加密函数环境变量的 Key Management Service (KMS) 密钥的 ARN。如果未提供,Lambda 将使用默认服务密钥。

  • tracing_config (Any | None) – 将 Mode 设置为 Active 以使用 X-Ray 对传入请求的子集进行采样和跟踪。

  • tags (Any | None) – 应用于函数标签列表。

  • layers (list | None) – 要添加到函数执行环境的函数层列表。通过其 ARN(包括版本)指定每个层。

  • file_system_configs (list[Any] | None) – Amazon EFS 文件系统的连接设置。

  • image_config (Any | None) – 覆盖容器镜像 Dockerfile 中值的容器镜像配置值。

  • code_signing_config_arn (str | None) – 要为此函数启用代码签名,请指定代码签名配置的 ARN。代码签名配置包括一组签名配置文件,它们定义了此函数的受信任发布者。

  • architectures (list[str] | None) – 函数支持的指令集架构。

  • ephemeral_storage (Any | None) – 函数 /tmp 目录的大小(MB)。默认值为 512,但可以是 512 到 10,240 MB 之间的任何整数。

  • snap_start (Any | None) – 函数的 SnapStart 设置。

  • logging_config (Any | None) – 函数的 Amazon CloudWatch Logs 配置设置。

static encode_log_result(log_result, *, keep_empty_lines=True)[源]

从响应中解码执行日志并返回日志记录列表。

错误时返回 None,例如无效的 base64 编码字符串。

参数:
  • log_result (str) – 包含 Lambda 执行日志的 base64 编码字符串。

  • keep_empty_lines (bool) – 是否保留空行。

此条目是否有帮助?