airflow.providers.amazon.aws.triggers.ec2

EC2StateSensorTrigger

轮询 EC2 实例,并在实例状态与目标状态匹配时生成一个 TriggerEvent。

模块内容

class airflow.providers.amazon.aws.triggers.ec2.EC2StateSensorTrigger(instance_id, target_state, aws_conn_id='aws_default', region_name=None, poll_interval=60)[source]

基类: airflow.triggers.base.BaseTrigger

轮询 EC2 实例,并在实例状态与目标状态匹配时生成一个 TriggerEvent。

参数:
  • instance_id (str) – AWS EC2 实例 ID

  • target_state (str) – 实例的目标状态

  • aws_conn_id (str | None) – 用于 AWS 凭据的 Airflow 连接 ID。如果此项为 None 或为空,则使用默认的 boto3 行为。如果以分布式方式运行 Airflow 且 aws_conn_id 为 None 或为空,则将使用默认的 boto3 配置(并且必须在每个工作节点上维护该配置)。

  • region_name (str | None) – (可选)与客户端关联的 AWS 区域名称

  • poll_interval (int) – 在尝试下一次轮询前等待的秒数

instance_id[source]
target_state[source]
aws_conn_id = 'aws_default'[source]
region_name = None[source]
poll_interval = 60[source]
serialize()[source]

返回重建此 Trigger 所需的信息。

返回:

元组(类路径,重新实例化所需的关键字参数)。

返回类型:

tuple[str, dict[str, Any]]

property hook[source]
async run()[source]

在异步上下文中运行 Trigger。

Trigger 应在想要触发事件时生成一个 Event,如果完成则返回 None。因此,单事件 Trigger 应生成一次然后立即返回。

如果它生成事件,很可能会很快恢复,但也可能不会(例如,如果工作负载正在转移到另一个触发器进程,或者多事件 Trigger 用于单事件任务延迟)。

无论哪种情况,Trigger 类都应假设它们会被持久化,然后在不再需要时依赖于调用 cleanup()。

此条目有用吗?