gpt4 book ai didi

google-cloud-platform - 在 cloud run 上运行非 web 应用有意义吗?

转载 作者:行者123 更新时间:2023-12-05 08:50:03 26 4
gpt4 key购买 nike

我看到文档中的所有示例都使用某种形式的简单 Web 应用程序(例如,Python 中的 Flask)。是否可以将云运行用作非 Web 应用程序?例如,部署cloud run 以使用python 脚本,然后使用GCP Scheduler 每小时调用cloud run 来运行该脚本?基本上,我对此的想法是避免必须部署计算引擎并为其付费,并且仅在通过调度程序调用云运行容器时付费。

最佳答案

必须回答 HTTP 请求。是Cloud Run的合约

  • 无状态(没有卷附加到容器)
  • 响应 HTTP 请求

但是,如果您已经有一个 python 脚本,可以很容易地将它包装在一个 flask 网络服务器中。比方说,你有这样的东西(我假设文件名是 main.py -> 末尾对 Dockerfile 很重要)

import ....

var = todo(...)
connect = connect(...)
connect(var)

  1. 首先,将其包装在这样的函数中
import ....

def my_function(request):
var = todo(...)
connect = connect(...)
connect(var)
return 'ok',200

  1. 其次,添加一个flask服务器
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)))
  1. 将 flask 添加到您的requirements.txt
  2. 搭建标准容器,这里以Dockerfile为例
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" ]
  1. 构建(例如使用 Cloud Build)并在 Cloud Run 上部署服务

现在您有了一个 URL,您可以使用 Cloud Scheduler 调用它。

请注意,最大请求持续时间目前限制为 15 分钟(很快会增加 4 倍)并限制为 2vCPU 和 2Gb 内存(同样,很快会增加)。

关于google-cloud-platform - 在 cloud run 上运行非 web 应用有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62804653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com