Google Compute Engine SSH 運算子¶
先決條件任務¶
要使用這些運算子,您必須完成幾件事
使用 Cloud Console 選擇或建立 Cloud Platform 專案。
為您的專案啟用帳單功能,如 Google Cloud 文件所述。
啟用 API,如 Cloud Console 文件所述。
透過 pip 安裝 API 程式庫。
pip install 'apache-airflow[google]'詳細資訊請參閱 安裝。
ComputeEngineRemoteInstanceSSHOperator¶
使用 SSHOperator
以及 ComputeEngineSSHHook
在遠端執行個體上執行命令。
此運算子使用 Cloud OS Login 或執行個體中繼資料來管理 SSH 金鑰。若要使用 Cloud OS Login,服務帳戶必須具有 compute.osAdminLogin
IAM 角色,且執行個體中繼資料必須啟用 Cloud OS Login。這可以透過設定執行個體中繼資料來完成 - enable-oslogin=TRUE
若要使用執行個體中繼資料,請確保在 Hook 中將 Cloud OS Login 引數設定為 False。
請注意,目標執行個體必須允許連接埠 22 上的 tcp 流量。
以下是建立運算子的程式碼
metadata_without_iap_tunnel1 = SSHOperator(
task_id="metadata_without_iap_tunnel1",
ssh_hook=ComputeEngineSSHHook(
user="username",
instance_name=GCE_INSTANCE_NAME,
zone=LOCATION,
project_id=PROJECT_ID,
use_oslogin=False,
use_iap_tunnel=False,
cmd_timeout=1,
),
command="echo metadata_without_iap_tunnel1",
)
您也可以在不使用專案 ID 的情況下建立 Hook - 專案 ID 將從使用的 Google 憑證中檢索
metadata_without_iap_tunnel2 = SSHOperator(
task_id="metadata_without_iap_tunnel2",
ssh_hook=ComputeEngineSSHHook(
user="username",
instance_name=GCE_INSTANCE_NAME,
zone=LOCATION,
use_oslogin=False,
use_iap_tunnel=False,
cmd_timeout=100,
),
command="echo metadata_without_iap_tunnel2",
)
更多資訊¶
請參閱 Google Compute Engine API 文件和 Cloud OS Login API 文件 * Google Cloud API 文件 * Google Cloud OS Login API 文件。