【发布时间】:2021-09-14 14:05:15
【问题描述】:
我有一个执行以下代码的数据流作业
>>> import urllib.request
>>> headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) '
... }
>>> element = 'https://www.sec.gov/Archives/edgar/full-index/2019/QTR1/master.idx'
>>> req = urllib.request.Request(element, headers=headers)
>>> data = urllib.request.urlopen(req)
>>> data = [line for line in data]
>>> data[0:2]
[b'Description: Master Index of EDGAR Dissemination Feed\n', b'Last Data Received: March 31, 2019\n']
现在,完全相同的代码嵌入到数据流作业中。该作业正在使用 gcloud 的 flex 模板运行,方式如下
gcloud dataflow flex-template run "edgarflow23" \
--template-file-gcs-location "$TEMPLATE_PATH" \
--parameters year=2020 \
--parameters quarter=QTR1 \
--parameters setup_file="/dataflow/template/setup.py" \
--region "$REGION"
代码最终出现 HTTP 403 Forbidden 错误 现在,当我通过 cloud shell 运行完全相同的代码时,我得到了完全相同的错误
- 当我在本地机器上运行时,它运行良好
- 当我通过经典模板启动相同的数据流作业时,它工作正常。
我很困惑,看看问题出在哪里? 有人可以帮忙吗? 问候 马可
【问题讨论】:
-
为了更好地帮助您,请分享以下详细信息: - 完整的错误跟踪 - 您在过程中的哪个位置得到错误? - 在 Cloud Shell 中,您使用什么命令来运行作业? - 所有环境的项目和凭据是否相同? (即本地、云外壳和弹性模板)
-
您好,感谢您回复我。好吧,堆栈跟踪只是说禁止错误 403,而我所做的就是使用 python 的请求打开一个 URL。我已经尝试使用 gcloud dataflow flex-template run 或使用 gcloud beta builds submit 来启动这项工作,但无论如何都没有运气。未加载外部 URL。值得注意的是,当我使用经典模板运行完全相同的代码时,代码工作得很好。所以我不太确定问题出在哪里
标签: google-cloud-platform google-cloud-dataflow dataflow