Bases: airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook
与 Amazon Elastic Compute Cloud (EC2) 交互。
提供 boto3.client("ec2")
或 boto3.resource("ec2")
的厚封装。
- 参数:
api_type – 如果设置为 client_type
,则 Hook 使用 boto3.client("ec2")
的能力;如果设置为 resource_type
,则 Hook 使用 boto3.resource("ec2")
的能力。
可以指定附加参数(例如 aws_conn_id
),这些参数会传递给底层的 AwsBaseHook。
-
API_TYPES[source]
-
get_instance(instance_id, filters=None)[source]
根据 ID 获取 EC2 实例并返回它。
- 参数:
-
- 返回:
实例对象
-
stop_instances(instance_ids)[source]
停止指定 ID 的实例。
- 参数:
instance_ids (list) – 要停止的实例 ID 列表
- 返回:
一个字典,键为 StoppingInstances,值为正在停止的实例列表
- 返回类型:
dict
-
start_instances(instance_ids)[source]
启动指定 ID 的实例。
- 参数:
instance_ids (list) – 要启动的实例 ID 列表
- 返回:
一个字典,键为 StartingInstances,值为正在启动的实例列表
- 返回类型:
dict
-
terminate_instances(instance_ids)[source]
终止指定 ID 的实例。
- 参数:
instance_ids (list) – 要终止的实例 ID 列表
- 返回:
一个字典,键为 TerminatingInstances,值为正在终止的实例列表
- 返回类型:
dict
-
describe_instances(filters=None, instance_ids=None)[source]
描述 EC2 实例,可选地应用过滤器和指定实例 ID。
- 参数:
-
- 返回:
来自 EC2 describe_instances API 的响应
-
get_instances(filters=None, instance_ids=None)[source]
获取实例详细信息列表,可选地应用过滤器和指定实例 ID。
- 参数:
-
- 返回:
实例列表
- 返回类型:
list
-
get_instance_ids(filters=None)[source]
获取实例 ID 列表,可选地应用过滤器以获取指定的实例。
- 参数:
filters (list | None) – 用于指定要获取的实例的过滤器列表
- 返回:
实例 ID 列表
- 返回类型:
list
-
async get_instance_state_async(instance_id)[source]
-
get_instance_state(instance_id)[source]
根据 ID 获取 EC2 实例状态并返回它。
- 参数:
instance_id (str) – AWS EC2 实例的 ID
- 返回:
实例的当前状态
- 返回类型:
str
-
wait_for_state(instance_id, target_state, check_interval)[source]
等待 EC2 实例直到其状态等于 target_state。
- 参数:
instance_id (str) – AWS EC2 实例的 ID
target_state (str) – 实例的目标状态
check_interval (float) – 在每次实例状态检查之间作业应等待的秒数,直到操作完成
- 返回:
None
- 返回类型:
None