Langflow 部署指南:在 Google Cloud Platform 上通过 Cloud Shell 一键启动 Langflow 开发环境
【免费下载链接】langflowLangflow is a powerful tool for building and deploying AI-powered agents and workflows.项目地址: https://gitcode.com/GitHub_Trending/la/langflow
本文基于仓库内 scripts/gcp/GCP_DEPLOYMENT.md 编写,讲解如何用 Google Cloud Shell 在一个全新的 GCP 项目中自动创建 Compute Engine VM、配置 VPC/子网/防火墙,并通过启动脚本安装 Langflow、以langflow run --host 0.0.0.0 --port 7860对外提供服务。读完本文,你将掌握标准 VM 与 Spot(可抢占)实例两套部署脚本的完整参数、访问方式、成本构成以及资源清理方法,并能深入理解脚本背后每一条gcloud命令与启动命令的实际作用。
部署方案概览
Langflow 在 GCP 上的官方部署路径是:打开 Cloud Shell → 信任仓库(Trust repo)→ 在scripts/gcp工作目录下执行教程脚本。整套部署由仓库中的以下文件构成:
| 文件 | 作用 |
|---|---|
| scripts/gcp/GCP_DEPLOYMENT.md | 部署入口文档,提供 Standard 与 Spot 两条部署路径及价格估算 |
| scripts/gcp/deploy_langflow_gcp.sh | 标准 VM 部署脚本 |
| scripts/gcp/deploy_langflow_gcp_spot.sh | Spot/可抢占实例部署脚本(在标准版基础上追加--preemptible) |
| scripts/gcp/walkthroughtutorial.md | 标准 VM 的 Cloud Shell 分步教程(约 45 分钟) |
| scripts/gcp/walkthroughtutorial_spot.md | Spot 实例的 Cloud Shell 分步教程 |
注意:Cloud Shell 打开后务必先选择Trust repo,否则部分
gcloud命令在临时(ephemeral)Cloud Shell 环境中无法运行。
该方案在 GCP 上创建的是一台Debian 11 VM,通过启动脚本(startup-script metadata)安装 Python 包管理器、Langflow 本体,然后在TCP 7860 端口上以监听0.0.0.0的方式对外提供 Web 界面。
前置条件
- 一个具备创建资源权限的 GCP 账号(需要开通计费,教程的
walkthrough-project-setup显式启用了compute.googleapis.com和container.googleapis.com两个 API,见 scripts/gcp/walkthroughtutorial.md); - 一个用于部署 Langflow 的 GCP 项目;
- 对 Cloud Shell 的基本使用了解(Cloud Shell 自带
gcloudCLI 与约 5GB 持久化存储)。
部署脚本参数详解
scripts/gcp/deploy_langflow_gcp.sh 开头集中定义了全部资源参数,两套脚本(标准版与 Spot 版)完全一致,逐项含义如下:
# Set the VM, image, and networking configuration VM_NAME="langflow-dev" # 实例名,后续访问与清理命令都依赖它 IMAGE_FAMILY="debian-11" # 系统镜像族 IMAGE_PROJECT="debian-cloud" # 镜像所属的 GCP 项目 BOOT_DISK_SIZE="100GB" # 启动盘大小 ZONE="us-central1-a" # 可用区 REGION="us-central1" # 计算区域(同时写入 gcloud 本地配置) VPC_NAME="default" # VPC 网络名 SUBNET_NAME="default" # 子网名 SUBNET_RANGE="10.128.0.0/20" # 子网 CIDR NAT_GATEWAY_NAME="nat-gateway" # 预留的 NAT 网关名 CLOUD_ROUTER_NAME="nat-client" # 预留的 Cloud Router 名机器类型为n1-standard-4(4 vCPU / 15 GB 内存),直接写死在gcloud compute instances create命令的--machine-type参数中。
网络资源的幂等创建逻辑
脚本对每个网络资源都遵循"先查后建"模式,因此可安全重复执行:
- 计算区域:
gcloud config set compute/region $REGION把默认区域锁定为us-central1; - VPC:
gcloud compute networks list --filter="name=$VPC_NAME"检查default网络是否存在,不存在则以--subnet-mode=custom创建(自定义子网模式,允许按区域显式指定 CIDR); - 子网:按
name=$SUBNET_NAME AND region=$REGION过滤检查,不存在则创建 CIDR 为10.128.0.0/20的子网; - 防火墙规则
allow-tcp-7860:--allow tcp:7860 --source-ranges 0.0.0.0/0 --direction INGRESS,即对全网开放 7860 端口——这正是 Langflow Web 界面的服务端口。注意该规则把来源放到了0.0.0.0/0,属于开发演示配置,生产环境应把 source-ranges 收敛为办公网段或叠加其他鉴权手段; - 防火墙规则
allow-iap:允许来自 IAP(Identity-Aware Proxy)网段35.235.240.0/20的tcp:80,tcp:443,tcp:22,tcp:3389入站流量,用于通过 GCP 控制台的"SSH via browser / IAP"通道访问实例。
脚本中另外定义了NAT_GATEWAY_NAME与CLOUD_ROUTER_NAME两个变量,但从脚本主体看当前版本并未实际创建 NAT 网关与 Cloud Router——VM 通过默认外部 IP 直接暴露 7860 端口,这两个变量属于预留/历史配置。
VM 创建命令
脚本最后把启动脚本写入mktemp临时文件,再执行:
gcloud compute instances create $VM_NAME \ --image-family $IMAGE_FAMILY \ --image-project $IMAGE_PROJECT \ --boot-disk-size $BOOT_DISK_SIZE \ --machine-type=n1-standard-4 \ --metadata-from-file startup-script=$tempfile \ --zone $ZONE \ --network $VPC_NAME \ --subnet $SUBNET_NAME--metadata-from-file startup-script是关键:GCP Compute Engine 会在实例每次首次启动时执行该 metadata 中的脚本,实现"开机即装机、装机即起服"。Spot 版脚本 scripts/gcp/deploy_langflow_gcp_spot.sh 与此唯一实质差异是在命令末尾追加了--preemptible标志。
启动脚本:Langflow 如何被安装并运行
两个脚本内嵌的 startup-script 内容略有差别,逐行来看标准版(scripts/gcp/deploy_langflow_gcp.sh L42-L55):
#!/bin/bash # Update and upgrade the system apt -y update apt -y upgrade # Install Python 3 pip, Langflow, and Nginx apt -y install python3-pip pip3 install pip -U apt -y update pip3 install langflow langflow run --host 0.0.0.0 --port 7860各步骤的作用:
apt -y update && apt -y upgrade:刷新软件源并升级系统包;apt -y install python3-pip:安装 pip;pip3 install pip -U:把 pip 自身升级到最新版,保证后续解析langflow包依赖时元数据兼容;pip3 install langflow:从 PyPI 安装当前发布版的 Langflow 完整包(后端 + 预构建前端静态资源),安装时长通常是整个部署过程的主要耗时点,教程估计全流程约 30 分钟;langflow run --host 0.0.0.0 --port 7860:启动服务。
Spot 版脚本(scripts/gcp/deploy_langflow_gcp_spot.sh L42-L53)的启动脚本更简短:
apt -y install python3-pip pip install langflow langflow --host 0.0.0.0 --port 7860langflow run是仓库内 CLI 的正式子命令,其入口在 src/backend/base/langflow/main.py,--host/--port参数控制 FastAPI 应用绑定地址与端口。从 src/backend/base/langflow/main.py 的应用装配代码可以看到,服务启动后除了加载组件包(bundles)、缓存组件类型、创建 starter projects 外,还会执行ensure_production_preflight生产预检、初始化数据库与各类后台服务——也就是说在裸 VM 上用 pip 装包直接langflow run,拿到的是一个功能完整的开发环境实例,而非裁剪版。
两点需要留意:
- 脚本注释提到安装 Nginx,但当前版本的启动脚本正文中并未出现 Nginx 安装与配置步骤,Langflow 是直接以 7860 端口裸奔对外的;若需要 TLS 或路径代理,可参考仓库文档 docs/docs/Deployment/deployment-nginx-ssl.mdx 中介绍的 Nginx 反代 + SSL 方案自行叠加。
- 该端口选择与仓库其他部署脚本保持一致,例如 scripts/test-api-examples-local.sh 与 DEVELOPMENT.md 中的本地运行流程同样以 7860 作为默认服务端口。
执行部署
方式一:Cloud Shell 向导(推荐)
按照 scripts/gcp/GCP_DEPLOYMENT.md 的指引:
- 点击文档中的 "Open in Cloud Shell" 按钮(Standard 与 Spot 各有一个入口,分别加载
walkthroughtutorial.md与walkthroughtutorial_spot.md教程); - 选择Trust repo,然后Start;
- 在教程中选定 GCP 项目后,执行:
gcloud config set project <your-project-id> bash ./deploy_langflow_gcp.sh # 标准版;Spot 版为 deploy_langflow_gcp_spot.sh脚本会依次完成:检查并创建 VPC/子网/防火墙规则 → 写入启动脚本 → 创建langflow-dev实例 → VM 启动时自动安装并运行 Langflow。全程预计约 30 分钟。
方式二:手动执行
在任意已配置好gcloud的环境中,把仓库中scripts/gcp目录下的脚本拉到本地后执行同样两条命令即可,脚本本身是幂等的(网络资源存在则跳过创建),但重复执行gcloud compute instances create会因实例同名而报错,属预期行为。
访问 Langflow 实例
部署完成后,VM 的langflow run进程监听在0.0.0.0:7860,配合防火墙规则allow-tcp-7860对外可达。两种连接方式(来自 scripts/gcp/walkthroughtutorial.md 的 "Connect to the Langflow VM" 步骤):
- 在 GCP 控制台的 VM instances 页面点击实例的外部 IP,将协议设为HTTP、端口设为7860;
- 或在 Cloud Shell 中直接打印出访问地址:
export LANGFLOW_IP=$(gcloud compute instances list --filter="NAME=langflow-dev" --format="value(EXTERNAL_IP)") echo http://$LANGFLOW_IP:7860在浏览器中打开该 URL,即可看到 Langflow 开发环境界面,可创建、编辑并运行 Flows。
标准 VM 与 Spot 实例的取舍
文档对两种实例的定位(见 scripts/gcp/GCP_DEPLOYMENT.md):
- 标准 VM:行为稳定的常规实例,启动脚本同样会执行"配置环境 → 安装依赖 → 运行应用"的完整流程;
- Spot/可抢占实例:代码与 VM 行为与常规实例完全相同(同样执行 startup-script),但当 Google Cloud 需要回收资源时,VM 可能随时被终止。因此 Spot 适合容错、无状态或可中断的工作负载——对于"丢了就重新拉起"的 Langflow 开发/演示环境是合适的,但磁盘上的项目数据(SQLite 数据库、上传文件、已建的 Flows)在实例回收后不保证保留,不适合承载需要持久化的正式业务。
成本估算(文档给出的近似值)
以下为 scripts/gcp/GCP_DEPLOYMENT.md 中 Pricing 表格的原文数据,精确报价请以 GCP Pricing Calculator 为准:
| 组件 | 常规价格(每小时) | 常规价格(每月) | Spot 价格(每小时) | Spot 价格(每月) | 说明 |
|---|---|---|---|---|---|
| 100 GB 磁盘 | - | $10/月 | - | $10/月 | 磁盘成本在常规与 Spot VM 上相同 |
| VM(n1-standard-4) | $0.15/hr | ~$108/月 | ~$0.04/hr | ~$29/月 | 使用 Spot 可显著降低 VM 成本 |
| 合计 | $0.15/hr | ~$118/月 | ~$0.04/hr | ~$39/月 | 24/7 连续运行一月的总成本(VM + 磁盘) |
清理资源
教程的 Cleanup 章节(scripts/gcp/walkthroughtutorial.md)给出两层清理:
删除 VM 实例(必须执行,否则持续计费):
gcloud compute instances delete langflow-dev --zone us-central1-a --quiet可选:删除网络配置(如果项目不再需要这些防火墙规则与网络,才执行以下命令):
gcloud compute firewall-rules delete allow-tcp-7860 --quiet gcloud compute firewall-rules delete allow-iap --quiet gcloud compute networks subnets delete default --region us-central1 --quiet gcloud compute networks delete default --quiet注意allow-iap与default网络/子网在项目中可能被其他资源共享,删除前请确认没有别的实例依赖它们。
小结
Langflow 的 GCP 部署路径用两个高度幂等的 Bash 脚本覆盖了从 VPC/子网/防火墙到 VM 与 Langflow 本体的全部环节,核心动作可以概括为:gcloud建网与防火墙 →startup-script元数据挂载装机脚本 →pip3 install langflow→langflow run --host 0.0.0.0 --port 7860→ 通过http://<EXTERNAL_IP>:7860访问。标准版适合需要稳定性的场景,Spot 版以约 3 倍的月度成本优势适合无状态的开发与演示环境。由于启动脚本把 7860 端口开放到了0.0.0.0/0且服务以开发模式直接暴露,该方案应仅用于开发/评估用途;面向公网的正式部署建议在此基础上叠加 Nginx 反代、TLS 与访问控制(可参考 docs/docs/Deployment/deployment-nginx-ssl.mdx 与 docs/docs/Deployment/security.mdx)。
【免费下载链接】langflowLangflow is a powerful tool for building and deploying AI-powered agents and workflows.项目地址: https://gitcode.com/GitHub_Trending/la/langflow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考