跳转到主要内容
推荐场景:50+ 用户的生产环境

架构概览

重要:Teable 需要 S3-compatible 存储。你可以选择:
  • AWS S3(跨云方案)
  • MinIO(在 Azure VM/AKS 自建)
  • 其他 S3-compatible 服务
Azure Blob Storage 不直接支持,因为它使用不同的 API。

前置要求

  • 已安装并登录 Azure CLI
  • Azure 订阅具备 App Service、PostgreSQL、Redis 权限
  • 具备 S3-compatible 存储访问权(例如 AWS S3 账号或 MinIO 部署)

步骤 1:创建 Azure 资源

1.1 创建资源组

1.2 创建 PostgreSQL Flexible Server

等待预配完成。获取连接字符串:
结果:teable-db.postgres.database.azure.com

1.3 创建 Azure Cache for Redis

获取访问密钥:

步骤 2:设置 S3-compatible 存储

由于 Azure Blob Storage 不兼容 S3,请选择以下方案之一:

方案 A:使用 AWS S3(跨云)

如果你已有 AWS 访问权或不想管理 MinIO,这是最简单的方案。
  1. 在 AWS 上创建 S3 bucket(参见 AWS 部署指引 步骤 1.3-1.4)
    • Public bucket:teable-public-<唯一后缀>
    • Private bucket:teable-private-<唯一后缀>
  2. 配置 public bucket(参见 对象存储指引):
    • 启用 public read 访问
    • 配置 CORS 允许任意跨域
你将使用这些环境变量:

方案 B:在 Azure 上部署 MinIO

如果希望所有资源都在 Azure,可部署 MinIO 作为 S3-compatible 网关。 推荐镜像minio/minio:RELEASE.2025-04-22T22-12-26Z 快速设置(Azure VM)
  1. 创建 VM 并安装 MinIO:
  1. 通过 MinIO 控制台(端口 9001)或 CLI 创建 bucket:
你将使用这些环境变量:

步骤 3:准备环境变量

创建文件 app-settings.txt,包含所有必需变量:
生成强 SECRET_KEY

步骤 4:部署到 Azure App Service

4.1 创建 App Service Plan

4.2 创建 Web App(容器方式)

4.3 配置容器设置

4.4 设置环境变量

4.5 配置健康检查

4.6 重启应用


步骤 5:验证部署

  1. 检查应用状态
预期:Running
  1. 查看日志
  1. 测试健康检查
预期返回:
  1. 浏览器访问 Teablehttps://teable-app.azurewebsites.net

故障排查

数据库连接错误

  • 验证 PostgreSQL 防火墙允许 Azure 服务
  • 检查连接字符串包含 ?sslmode=require
  • 确保数据库名称正确(默认是 postgres,不是 teable

Redis 连接错误

  • 使用 rediss://(双’s’)进行 TLS 连接
  • 使用端口 6380(不是 6379)连接 Azure Cache for Redis
  • 验证访问密钥正确

S3 访问错误(方案 A:AWS S3)

  • 验证 AWS 凭据正确
  • 检查 bucket 名称完全匹配
  • 确保 public bucket 已配置 public read 策略与 CORS
  • 测试 S3 从 Azure 的访问:curl https://s3.us-west-2.amazonaws.com 应该可用

容器启动失败

  • 检查日志:az webapp log tail ...
  • 验证所有必需环境变量已设置
  • 确保 WEBSITES_PORT=3000 已设置

生产环境最佳实践

详细的生产环境建议(包括配置、高可用、扩展策略)请参考 私有化部署概览
Azure 特定建议
  • 使用 Azure Key Vault 存储敏感值
  • 启用仅 HTTPS:az webapp update --https-only true
  • 使用 VNet Integration 限制数据库/redis 访问
  • 启用 Application Insights 监控
自定义域名配置

替代方案:在 AKS 上部署(Azure Kubernetes Service)

对于大规模部署或已使用 Kubernetes 的团队,AKS 提供更好的可扩展性和控制能力。

AKS 架构

步骤 1:创建 AKS 集群

步骤 2:创建 Azure 托管服务

使用与 步骤 1.2步骤 1.3 相同的命令创建 PostgreSQL 和 Redis。
对于 AKS,建议启用 VNet 集成以保护连接:

步骤 3:在 AKS 中部署 MinIO(可选)

如果希望存储保持在 Azure 内部,可以在 AKS 中部署 MinIO:
对于生产环境的 MinIO 部署,建议使用 MinIO Operator 实现分布式模式与数据冗余。

步骤 4:创建 Kubernetes 配置

创建包含 Azure 特定设置的 ConfigMap:
创建包含 Azure 服务凭据的 Secrets:

步骤 5:部署 Teable

步骤 6:配置 Ingress

方案 A:使用 NGINX Ingress Controller
方案 B:使用 Azure Application Gateway Ingress Controller (AGIC)

步骤 7:应用所有配置

AKS 生产环境建议

  1. 自动扩缩容
  1. 使用 Azure Key Vault 替代 Kubernetes secrets 存储敏感信息:
  1. 启用 Azure Monitor
  1. 使用 Azure Private Link 连接 PostgreSQL 和 Redis,保持流量在 Azure 网络内。

相关文档

最后修改于 2026年1月4日