Amazon Elastic Compute Cloud (EC2)¶
Amazon Elastic Compute Cloud (Amazon EC2) 是一个网络服务,提供可伸缩的计算能力——字面上看,就是亚马逊数据中心里的服务器——供您用于构建和托管您的软件系统。
先决任务¶
要使用这些操作符,您必须做几件事
通过 pip 安装 API 库。
pip install 'apache-airflow[amazon]'详细信息请参阅 安装 Airflow®
设置连接.
通用参数¶
- aws_conn_id
引用 Amazon Web Services 连接 ID。如果此参数设置为
None
,则使用默认的 boto3 行为,不进行连接查找。否则使用连接中存储的凭据。默认值:aws_default
- region_name
AWS 区域名称。如果此参数设置为
None
或省略,则将使用 AWS 连接附加参数 中的 region_name。否则使用指定的值而非连接中的值。默认值:None
- verify
是否验证 SSL 证书。
False
- 不验证 SSL 证书。path/to/cert/bundle.pem - 要使用的 CA 证书捆绑包的文件名。如果您想使用与 botocore 使用的不同的 CA 证书捆绑包,可以指定此参数。
如果此参数设置为
None
或省略,则将使用 AWS 连接附加参数 中的 verify。否则使用指定的值而非连接中的值。默认值:None
- botocore_config
提供的字典用于构建 botocore.config.Config。此配置可用于配置 避免限流异常、超时等。
示例,有关参数的更多详细信息请查看 botocore.config.Config¶{ "signature_version": "unsigned", "s3": { "us_east_1_regional_endpoint": True, }, "retries": { "mode": "standard", "max_attempts": 10, }, "connect_timeout": 300, "read_timeout": 300, "tcp_keepalive": True, }
如果此参数设置为
None
或省略,则将使用 AWS 连接附加参数 中的 config_kwargs。否则使用指定的值而非连接中的值。默认值:None
注意
指定一个空字典,
{}
,将覆盖 botocore.config.Config 的连接配置
操作符¶
启动 Amazon EC2 实例¶
要启动 Amazon EC2 实例,您可以使用 EC2StartInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
start_instance = EC2StartInstanceOperator(
task_id="start_instance",
instance_id=instance_id,
)
停止 Amazon EC2 实例¶
要停止 Amazon EC2 实例,您可以使用 EC2StopInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
stop_instance = EC2StopInstanceOperator(
task_id="stop_instance",
instance_id=instance_id,
)
创建并启动 Amazon EC2 实例¶
要创建并启动 Amazon EC2 实例,您可以使用 EC2CreateInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
create_instance = EC2CreateInstanceOperator(
task_id="create_instance",
image_id=image_id,
max_count=1,
min_count=1,
config=config,
)
终止 Amazon EC2 实例¶
要终止 Amazon EC2 实例,您可以使用 EC2TerminateInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
terminate_instance = EC2TerminateInstanceOperator(
task_id="terminate_instance",
instance_ids=instance_id,
wait_for_completion=True,
)
重启 Amazon EC2 实例¶
要重启 Amazon EC2 实例,您可以使用 EC2RebootInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
reboot_instance = EC2RebootInstanceOperator(
task_id="reboot_instace",
instance_ids=instance_id,
)
休眠 Amazon EC2 实例¶
要休眠 Amazon EC2 实例,您可以使用 EC2HibernateInstanceOperator
。
tests/system/amazon/aws/example_ec2.py
hibernate_instance = EC2HibernateInstanceOperator(
task_id="hibernate_instace",
instance_ids=instance_id,
)
传感器¶
等待 Amazon EC2 实例状态¶
要检查 Amazon EC2 实例的状态并等待它达到目标状态,您可以使用 EC2InstanceStateSensor
。
tests/system/amazon/aws/example_ec2.py
await_instance = EC2InstanceStateSensor(
task_id="await_instance",
instance_id=instance_id,
target_state="running",
)