首页 > 编程问答 >将dynamicTemplate添加到谷歌云模板启动

将dynamicTemplate添加到谷歌云模板启动

时间:2024-07-30 15:29:25浏览次数:8  
标签:python google-cloud-functions google-cloud-dataflow gcloud

我们使用谷歌云功能通过以下方式启动模板: https://cloud.google.com/dataflow/docs/reference/rest/v1b3/projects.locations.templates/launch

我们想添加一个通过具有以下布局的动态模板将请求的暂存位置:

DYNAMICTEMPLATE = {"gcsPath" : GCSPATH, "stagingLocation" : "gs://xxx/dataflow/staging"}

request = service.projects().locations().templates().launch(projectId=PROJECT, gcsPath=GCSPATH, body=BODY, location=LOCATION, dynamicTemplate=DYNAMICTEMPLATE)
response = request.execute()

但是日志记录返回以下错误: TypeError: Got an unexpected keyword argument "dynamicTemplate"

如果没有动态模板,一切运行都不会出现问题。我们还尝试在 body 中添加dynamicTemplate,但这也不起作用..有人知道如何设置dynamicTemplate吗?


看到的错误信息 “TypeError: Got an unexpected keyword argument 'dynamicTemplate'” 说明使用的 Google Cloud Python 客户端库版本不支持 dynamicTemplate 参数。

要解决这个问题,需要采取以下两种方法之一:

方法一: 更新 Google Cloud Python 客户端库

确保使用的 Google Cloud Python 客户端库版本是最新的。可以使用以下命令更新库:

pip install --upgrade google-cloud-dataflow

更新完成后,检查 launch 方法的文档是否包含 dynamicTemplate 参数。

方法二: 使用 HTTP 请求发送 dynamicTemplate

如果更新库后 dynamicTemplate 仍然不可用,可以直接使用 HTTP 请求来发送它。以下是使用 Python requests 库实现的示例:

import requests
import google.auth

# 获取的 Google Cloud 项目 ID
PROJECT_ID = 'your-project-id'
# 获取的 Google Cloud 地区
LOCATION = 'your-location'
# 获取的 GCS 路径
GCSPATH = 'gs://your-bucket/your-template.json'
# 定义的 dynamicTemplate
DYNAMICTEMPLATE = {"gcsPath": GCSPATH, "stagingLocation": "gs://xxx/dataflow/staging"}

# 构建请求 URL
url = f'https://dataflow.googleapis.com/v1b3/projects/{PROJECT_ID}/locations/{LOCATION}/templates:launch'

# 获取的 Google Cloud 凭据
credentials, _ = google.auth.default()
# 使用凭据获取访问令牌
access_token = credentials.token

# 设置请求头
headers = {
    'Authorization': f'Bearer {access_token}',
    'Content-Type': 'application/json'
}

# 设置请求体
data = {
    'gcsPath': GCSPATH,
    'dynamicTemplate': DYNAMICTEMPLATE
}

# 发送请求
response = requests.post(url, headers=headers, json=data)

# 处理响应
if response.status_code == 200:
    print('Dataflow 模板已成功启动')
else:
    print(f'请求失败:{response.status_code} - {response.text}')

注意: 在使用 HTTP 请求时,请确保已经正确设置了身份验证。

希望这些方法可以帮助解决问题。如果还有其他问题,请随时提出。

标签:python,google-cloud-functions,google-cloud-dataflow,gcloud
From: 78810324

相关文章

  • Python sqlite3 删除数据
    要从SQLite表中删除记录,你需要使用DELETEFROM语句。要删除特定的记录,你需要同时使用WHERE子句。要更新特定的记录,你需要同时使用WHERE子句。语法以下是SQLite中DELETE查询的语法- DELETEFROMtable_name[WHEREClause]PythonCopy例子假设我们使用以下查询创建了......
  • Python 环境配置(一)Python、Anaconda、Pycharm的安装
    Python环境配置(一)Python、Anaconda、Pycharm的安装本人之前已安装一次,此次为卸载之后的重新安装。。。一、Python1、下载下载官网:下载链接:DownloadPython|Python.org勾选添加到路径(环境变量)next如图所示之后点close关闭2、验证win+Rcmd:python退出ex......
  • Pycharm 设置 yaml 格式接口测试用例模板 (python+pytest+yaml)
    前言初次编写的伙伴们可能对yaml格式不太熟悉,自己写yaml用例的时候,总是格式对不齐啊记不住设定好的关键字啊等等等琐事是我们可以在pycharm上设置用例模块,通过快捷方式调用出对应的模块,达到高效写用例的目的。 pycharm操作集:1、File-Settings(快捷键Ctrl+Alt+S) 2、Live......
  • Python - Redirecting output of print to a file
    Theprintfunctioncanalsobeusedtowritetoafile.Theoutputofprint,thatisbydefault,senttothescreencanberedirectedtoanopenfile.Forthis,youhavetosupplythefileobjectasanargumentforthenamedparameterfile.Hereisanexa......
  • Python:添加到相对于当前运行脚本的 sys.path 的最佳方法
    我有一个充满脚本的目录(比如说project/bin)。我还有一个位于project/lib的库,并希望脚本自动加载它。这是我通常在每个脚本的顶部使用的:#!/usr/bin/pythonfromos.pathimportdirname,realpath,sep,pardirimportsyssys.path.append(dirname(realpath(_......
  • python身份证号码+姓名一致性核验、身份证号码真伪查询API集成
    身份证号码+姓名核验的方式,顾名思义是身份证二要素核验,一般情况下,身份证真伪查询需要上公安户籍系统查询,但此种方式仅适合个人查询,企业要想随时随地实现身份证实名认证的功能,便需要集成身份证实名认证接口功能。翔云人工智能开放平台提供身份证号实名认证接口,实时联网,上传身份证......
  • 如何将数字分配给返回的 python 数据列表,我可以调用这些数据来打印
    这里完全是菜鸟。我在网上搜索过,找不到我想要做的事情的答案。我的代码在这里:importbs4asbsimporturllib.requestsauce=urllib.request.urlopen('https://www.amazon.com/gp/rss/bestsellers/kitchen/289851/ref=zg_bs_289851_rsslink').read()soup=bs.Beautiful......
  • python API增值税发票四要素核验、数电票查验、医疗票查验
    长期以来,对发票进行高效的管理一直困扰着众多企业财务,手动录入效率慢、出错率高、纸质发票易丢失等。今天,翔云为广大企业提供了发票查验接口与财政票据查验接口服务,可针对增值税发票管理系统开具发票,医疗票据、非税收入等财政类票据进行真伪查验。翔云发票识别接口,使得企业财务无......
  • 如何使用 python 在 influxdb 中创建组织和存储桶
    如何使用python在influxdb中创建组织和存储桶?我有一个python脚本,用于在influxdb中创建组织和存储桶,但它无法工作并返回未经授权的响应任何人可以使用influxdbapi帮助我解决这个问题吗?HTTPresponsebody:{"code":"unauthorized","message":"write:org......
  • Python - File opening modes and buffering
    'r'-readmode(default)'w'-writemode'a'-appendmode'x'-exclusivecreationWeknowthatthemode'r'opensanexistingfileforreadingonly;thefileshouldalreadyexist.Ifyouopenafilein......