Tyl*_*ler 0 google-cloud-platform google-cloud-run
我看到文档中的所有示例都使用某种形式的简单 Web 应用程序(例如,Python 中的 Flask)。是否可以将云运行用作非 Web 应用程序?例如,部署 cloud run 使用 python 脚本,然后使用 GCP Scheduler 每小时调用 cloud run 来运行该脚本?基本上,我对此的想法是避免部署 Compute Engine 并为其付费,并且仅在通过调度程序调用云运行容器时付费。
必须回答 HTTP 请求。这是 Cloud Run 的合约
但是,如果您已经有一个 Python 脚本,则很容易将其包装在一个 Flask 网络服务器中。比方说,你有这样的东西(我假设文件名是main.py
->最后对 Dockerfile 很重要)
import ....
var = todo(...)
connect = connect(...)
connect(var)
Run Code Online (Sandbox Code Playgroud)
import ....
def my_function(request):
var = todo(...)
connect = connect(...)
connect(var)
return 'ok',200
Run Code Online (Sandbox Code Playgroud)
from flask import Flask, request
import os
import ....
app = Flask(__name__)
@app.route('/')
def my_function(request):
var = todo(...)
connect = connect(...)
connect(var)
return 'ok',200
if __name__ == "__main__":
app.run(host='0.0.0.0',port=int(os.environ.get('PORT',8080)))
Run Code Online (Sandbox Code Playgroud)
requirements.txt
FROM python:3-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
ENV PORT 8080
CMD [ "python", "main.py" ]
Run Code Online (Sandbox Code Playgroud)
现在您有了一个 URL,您可以使用 Cloud Scheduler 调用该 URL。
请注意,目前最大请求持续时间限制为 15 分钟(很快会增加 4 倍)并限制为 2vCPU 和 2Gb 内存(同样,很快会更多)。
归档时间: |
|
查看次数: |
829 次 |
最近记录: |