如何在私有子网上从 python Google API 客户端库运行数据流

Posted

技术标签:

【中文标题】如何在私有子网上从 python Google API 客户端库运行数据流【英文标题】:How to run Dataflow from python Google API Client Libraries on private subnetwork 【发布时间】:2022-01-09 20:08:59 【问题描述】:

我正在尝试使用 python google api 客户端库启动 Dataflow 作业。以前一切正常,直到我们不得不从默认子网迁移到另一个私有子网。以前我使用以下代码启动数据流作业:

    request = dataflow.projects().locations().templates().launch(
        projectId = PROJECT_ID,
        location  = REGION,
        gcsPath   = TEMPLATE_LOCATION,
        body      = 
            'jobName':    job_name,
            'parameters': job_parameters,
        
    )
    response = request.execute()

但是现在作业会失败,因为默认子网不再存在,我现在需要指定使用data-subnet 子网。 从this 文档和this 其他问题来看,如果我通过添加标志--subnetwork regions/$REGION/subnetworks/$PRIVATESUBNET 从命令行启动脚本,解决方案将是微不足道的。但是我的情况有所不同,因为我试图从代码中执行此操作,并且在 documentation 中我找不到任何子网参数选项。

【问题讨论】:

【参考方案1】:

您可以像这样为您的管道指定一个自定义子网

    request = dataflow.projects().locations().templates().launch(
        projectId = PROJECT_ID,
        location  = REGION,
        gcsPath   = TEMPLATE_LOCATION,
        body      = 
            'jobName':    job_name,
            'parameters': job_parameters,
            'environment': 
                'subnetwork': SUBNETWORK,
            
        
    )
    response = request.execute()

确保 SUBNETWORK 的格式为 "https://www.googleapis.com/compute/v1/projects/<project-id>/regions/<region>/subnetworks/<subnetwork-name>"

【讨论】:

以上是关于如何在私有子网上从 python Google API 客户端库运行数据流的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Terraform 在 OVH 上创建私有子网?

如何在没有授权令牌的情况下从 python 脚本查询 google-bigquery 中的私有表?

如何在pycharm python上从3到6的按钮进行乘法和求和

我在私有子网中有 AWS Postgres 实例,但没有任何 ***,如何通过本地访问它?

如何在私有子网上托管的 aws ec2 实例中安装 Nginx

如何将公有子网中的 ec2 服务器中私有子网中的弹性 beanstalk 服务器列入白名单?