如何解决API Django Rest Framework on Cloud Run关闭
我已经在Cloud Run上实现了API DRF。 Dockerfile如下:
# Use the official lightweight Python image.
# https://hub.docker.com/_/python
FROM python:3.7-slim
# Allow statements and log messages to immediately appear in the Cloud Run logs
ENV PYTHONUNBUFFERED True
# Prevents Python from writing pyc files to disc (equivalent to python -B option)
ENV PYTHONDONTWRITEBYTECODE True
ARG REQFILE=base.txt
ENV REQFILE ${REQFILE}
# install dependencies
RUN pip install --upgrade pip
# Copy application dependency manifests to the container image.
# Copying this separately prevents re-running pip install on every code change.
COPY requirements/*.txt ./
# Install production dependencies.
RUN pip install -r ./${REQFILE}
# Copy local code to the container image.
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./
# Run the web service on container startup. Here we use the gunicorn
# webserver,with one worker process and 8 threads.
# For environments with multiple CPU cores,increase the number of workers
# to be equal to the cores available.
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 main:app
它与文档中所述的相同:https://codelabs.developers.google.com/codelabs/cloud-run-django#6
因此,我的API上的某些查询确实很慢(> 60秒)。通常,它们是
这些关闭的原因是什么?
解决方法
鉴于这种情况,很可能与Cloud Run Incident #20004有关:
Oct 29,2020 13:12
:我们正在调查一个问题,即从2020年10月29日(星期四)美国/太平洋地区开始,全球范围内的Cloud Run部署将失败。
Oct 29,2020 13:40
:诊断:到Cloud Run的新部署将在全球范围内失败。
Oct 29,2020 14:16
:到2020年10月29日星期四,美国/太平洋地区,所有受影响的项目都已解决了Cloud Run部署在全球范围内失败的问题。
值得一看的是Google Cloud Status Dashboard来检查每个产品上是否有任何事件。
,在没有发现任何错误或错误的情况下在本地测试Docker之后,我得出的结论是问题是由于云运行的冷启动引起的。 即使几个月前我实施了一个解决方案(使用Cloud Scheduler对Cloud Run进行定期查询),仍然存在问题。
我今天尝试implement a minimal number个实例,目前是一个。 真正高延迟的查询数量降至0。
费用似乎并不高(我会在月底评论价格,我希望大约是14欧元),并且说实话,要摆脱这个问题,我会轻而易举地支付双倍费用。 / p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。