如何在Cloud Run中用Python记录并查看收到的输入(如URL)
在Cloud Run中用Python记录并查看URL输入日志
1. 编写Python服务代码
用Flask搭建基础服务,处理URL输入并记录日志。Cloud Run会自动收集标准输出/错误流的日志,直接用Python内置的logging模块即可完成日志输出。
创建main.py文件:
import logging import os from flask import Flask, request # 配置日志格式,包含时间、日志级别和消息内容 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s' ) logger = logging.getLogger(__name__) app = Flask(__name__) @app.route('/receive-url', methods=['GET', 'POST']) def receive_url(): # 兼容GET参数、POST JSON/表单三种输入方式 input_url = None if request.method == 'GET': input_url = request.args.get('url') elif request.method == 'POST': if request.is_json: input_url = request.json.get('url') else: input_url = request.form.get('url') if not input_url: logger.warning("未接收到有效的URL输入") return "请提供有效的URL参数", 400 # 记录收到的URL内容 logger.info(f"收到URL输入: {input_url}") return f"已记录URL: {input_url}", 200 if __name__ == '__main__': # 读取Cloud Run自动设置的PORT环境变量,默认8080 port = int(os.environ.get('PORT', 8080)) app.run(host='0.0.0.0', port=port)
2. 编写Dockerfile
Cloud Run依赖容器镜像运行服务,创建Dockerfile:
# 使用轻量版Python基础镜像 FROM python:3.11-slim # 设置工作目录 WORKDIR /app # 复制依赖清单并安装 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 复制服务代码 COPY main.py . # 暴露Cloud Run默认端口 EXPOSE 8080 # 启动服务 CMD ["python", "main.py"]
对应的requirements.txt文件:
Flask==2.3.3
3. 部署到Cloud Run
使用gcloud CLI完成部署(需提前安装并配置好gcloud工具,关联你的GCP项目):
# 构建容器镜像(替换PROJECT_ID为你的GCP项目ID) gcloud builds submit --tag gcr.io/PROJECT_ID/url-logger # 部署到Cloud Run,允许未认证请求用于测试 gcloud run deploy url-logger --image gcr.io/PROJECT_ID/url-logger --platform managed --allow-unauthenticated
部署完成后会生成一个服务访问URL,格式类似https://url-logger-xxxxxx-uc.a.run.app。
4. 测试服务并查看日志
发送测试请求
- GET方式:直接访问
https://url-logger-xxxxxx-uc.a.run.app/receive-url?url=https://example.com - POST JSON方式:
curl -X POST -H "Content-Type: application/json" -d '{"url":"https://test.com"}' https://url-logger-xxxxxx-uc.a.run.app/receive-url
查看日志
通过gcloud CLI查看:
# 筛选Cloud Run服务的最新20条日志 gcloud logs read "resource.type=cloud_run_revision AND resource.labels.service_name=url-logger" --limit 20
通过GCP控制台查看:
- 打开Cloud Run控制台,找到你的
url-logger服务 - 切换到「日志」标签页,即可看到实时输出的日志,包含你记录的URL输入信息
内容的提问来源于stack exchange,提问作者lima
相关产品推荐
相关产品推荐

