我在Google Cloud App Engine(flex)上运行Flask应用.在本地运行它可以正常工作,但一旦它部署我得到一个502 Bad Gateway error (nginx).现在我想弄清楚导致这种情况的原因,但我找不到任何选项来查看我的应用程序创建的控制台日志.
由于它在我的本地环境中运行良好,我当前解决此问题的工作流程涉及在本地更改我的代码并部署它以查看它是否可以在以后工作,但每次部署只需要花费30分钟才能确定它仍然无效.必须有一种方法可以更有效地做到这一点.
按照文档https://cloud.google.com/appengine/docs/flexible/python/debugging-an-instance 我能够以调试模式SSH进入我的实例并从Cloud Shell启动Flask应用程序,但是它告诉我在http://127.0.0.1:8080/上访问它,我无法从云服务器访问它.因此,我无法浏览网页以重现502错误,然后在控制台中查看输出.
如何找出导致服务器上的502错误的原因?
正如 Google 声称不支持从 Avro 转换logicalType为 BigQuery 特定类型(如底部所述)。
但是,我可以使用以下架构加载 Avro 文件:
schema = {
'name': 'test',
'namespace': 'testing',
'type': 'record',
'fields': [
{'name': 'test_timestamp', 'type': 'long', 'logicalType': 'timestamp-millis'},
],
}
Run Code Online (Sandbox Code Playgroud)
到 BigQuery 类型为TIMESTAMP 的列。
以下模式的情况有所不同:
schema = {
'name': 'test',
'namespace': 'testing',
'type': 'record',
'fields': [
{'name': 'testdate', 'type': 'int', 'logicalType': 'date'},
],
}
Run Code Online (Sandbox Code Playgroud)
和具有DATE类型列的 BigQuery 表。我以下列方式使用 bq load(在两种情况下):
bq --location=EU load --source_format=AVRO --project_id=test-project dataset.table "gs://bucket/test_file.avro"
Run Code Online (Sandbox Code Playgroud)
它失败了,但有异常:
Field testdate has changed type from …Run Code Online (Sandbox Code Playgroud) avro google-cloud-storage google-bigquery google-cloud-platform