我们正在使用云构建在 GCP 上进行持续部署。当推动提交快速(例如在开发中)时,触发的构建并行运行。有时那些相互干扰。例如,当两个应用引擎部署同时运行时。
有没有一种方法或最佳实践可以强制从同一个构建触发器触发的构建一个接一个地运行?
问候, 卡斯滕
我想从我的应用引擎标准 python3 应用程序向堆栈驱动程序日志发送更具表现力的日志条目。通过遵循官方文档,我能够将我的日志发送到 stackdriver,并且时间戳似乎被正确解析。
但我错过了严重程度。此外,我看不到将某个请求的日志链接到操作的方法。java日志记录似乎是开箱即用的。
供参考,这是我的代码:
import logging
import os
from flask import Flask
from google.cloud import logging as glog
app = Flask(__name__)
log_client = glog.Client(os.getenv('GOOGLE_CLOUD_PROJECT'))
# Attaches a Google Stackdriver logging handler to the root logger
log_client.setup_logging()
@app.route('/_ah/push-handlers/cloudbuild', methods=['POST'])
def pubsub_push_handle():
logging.info("stdlib info")
logging.warning("stdlib warn")
logging.error("stdlib error")
Run Code Online (Sandbox Code Playgroud)
导致堆栈驱动程序的日志:
如您所见,时间戳和消息可用,而严重性奇怪地缺失,它被归类为“任何”
有人可以指出我正确的方向,还是这种级别的合并尚不可用?
谢谢你的时间!卡斯腾
google-app-engine python-3.x google-cloud-platform stackdriver google-cloud-stackdriver
我正在尝试从Google Firestore中读取更大的收藏集,以进行测试和存档。当我尝试从集合中包含超过6k文档的所有文档中遇到一些有趣的错误。
我的第一次尝试是使用Python google-cloud-firestore(0.30.0版)库。
source_client = firestore.Client()
source = source_client.collection(collection)
source_data = source.get()
counter = 0
for f in source_data:
app.logger.info(f.id)
counter += 1
if counter % 100 == 0:
app.logger.info('%s %d', datetime.now(), counter)
app.logger.info('%s Finally read all %d documents', datetime.now(), counter)
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
INFO:flask.app:2018-11-08 09:49:03.923795 6400
INFO:flask.app:2018-11-08 09:49:04.115410 6500
...
INFO:flask.app:2018-11-08 09:49:03.923795 6400
INFO:flask.app:2018-11-08 09:49:04.115410 6500
WARNING:flask.app:2018-11-08 09:49:04.128478 copy brocken by exception
Traceback (most recent call last):
File "/home/carsten/projects/transfertool/venv/lib/python3.6/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/home/carsten/projects/transfertool/venv/lib/python3.6/site-packages/flask/app.py", …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何使用 Python 3(标准)将内部包添加到 Google App Engine 部署中。
对于 Python 2,打包模块的方法是使用本地lib/文件夹和appengine_config.py. 这似乎不再适用于 Python 3?至少我的应用程序找不到lib/文件夹中的模块。
对于 Python 3,可以只pip3 install -t .使用包。但这会变得非常混乱,因为所有软件包都刚刚安装在应用程序根目录中,并且还将添加到我们应用程序的 git 存储库中。
我们不能使用,requirements.txt因为该模块是内部的,并且在 PyPI 上不可用。
是否有另一种使用 Python 3 为 Google App Engine 打包模块的方法?
google-app-engine python-3.x google-cloud-platform google-app-engine-python