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",
)