gpt4 book ai didi

python - 使用 GCP 的 Airflow 。无法在 Airflow DAG 中 ping 外部 IP 地址

转载 作者:行者123 更新时间:2023-12-03 19:13:14 25 4
gpt4 key购买 nike

背景

  • 我使用 Google Cloud Platform 中的 Composer Environment 创建了一个 Airflow 网络服务器。即 3 个节点,composer-1.10.0-airflow-1.10.6 镜像版本,机器类型 n1-standard-1。
  • 我尚未为此环境配置任何网络。
  • Airflow 适用于简单的测试 DAG,即:

  • Airflow webserver

    问题
  • 我编写了一个 ping_ip DAG 来确定物理机器(即我的笔记本电脑)是否连接到互联网。 (代码:https://pastebin.com/FSBPNnkP)
  • 我测试了用于在本地 ping 机器的 python(通过 response = os.system("ping -c 1 " + ip_address)),它返回 0,也就是 Active Network。
  • 当我将此代码移入 Airflow DAG 时,代码运行良好,但这次为相同的 IP 地址返回 256。

  • 这是粘贴箱中的 DAG 代码:
    https://pastebin.com/FSBPNnkP

    以下是上面粘贴的触发 DAG 的 Airflow 日志:
    [2020-04-28 07:59:35,671] {base_task_runner.py:115} INFO - Job 2514: Subtask ping_ip 1 packets transmitted, 0 received, 100% packet loss, time 0ms
    [2020-04-28 07:59:35,673] {base_task_runner.py:115} INFO - Job 2514: Subtask ping_ip [2020-04-28 07:59:35,672] {logging_mixin.py:112} INFO - Network Error.
    [2020-04-28 07:59:35,674] {base_task_runner.py:115} INFO - Job 2514: Subtask ping_ip [2020-04-28 07:59:35,672] {python_operator.py:114} INFO - Done. Returned value was: ('Network Error.', 256)
  • 我想我的服务器中的外部 IP 存在网络问题。
  • 有人知道如何从 GCP 管理的 Airflow 服务中 ping 外部 IP 吗?
  • 最终目标是创建一个 DAG,提示物理机运行 python 脚本。我认为这个过程应该从一个简单的子 DAG 开始,它检查机器是否连接到互联网。如果我以错误的方式解决这个问题,请让我知道。
  • 最佳答案

    对我有用的是删除响应部分。这是代码:

    import os
    def ping_ip():
    ip_address = "8.8.8.8" # My laptop IP
    response = os.system("ping -c 1 " + ip_address)

    if response == 0:
    pingstatus = "Network Active."
    else:
    pingstatus = "Network Error."
    print("\n *** Network status for IP Address=%s is : ***" % ip_address)
    print(pingstatus)

    return pingstatus

    print(ping_ip())

    关于python - 使用 GCP 的 Airflow 。无法在 Airflow DAG 中 ping 外部 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61482547/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com