应用管理
应用是 Hyac 中的运行边界。一个应用包含函数、依赖、环境变量、数据库账号、对象存储空间和运行时容器。日常使用时,建议按业务系统、项目或隔离需求创建不同应用。

应用管理页用于创建应用、查看应用 ID、启动或暂停应用,并进入应用工作台。截图中的 iEmSSuBk 是当前测试环境的应用 ID。
应用和访问域名
每个应用都有一个 app_id。部署完成后,函数访问域名由 app_id 和主域名组成:
https://<app_id>.<DOMAIN_NAME>/<function_id>
例如:
https://demo.example.com/hello
这里 demo 是应用 ID,example.com 是部署时设置的 DOMAIN_NAME,hello 是函数 ID。
创建应用
进入“应用管理”页面后,可以创建新的应用。创建应用后,系统会为它准备独立的运行资源:
- 独立的函数集合。
- 独立的应用数据库。
- 独立的 RustFS/S3 兼容对象存储 Bucket。
- 独立的运行时容器,容器名为
hyac-app-runtime-<app_id小写>。
创建后建议立即确认:
- 应用 ID 是否便于识别,且适合作为子域名前缀。
- 当前用户是否拥有该应用访问权限。
- 需要的环境变量、依赖和 CORS 策略是否已经配置。
选择当前应用
控制台中的函数、数据库、对象存储、仪表盘和日志都依赖当前应用。切换应用后,这些页面会展示新应用的数据。
如果页面显示为空,先检查当前应用是否正确。很多“找不到函数”“对象为空”“日志为空”的问题,本质上都是应用上下文不一致。
运行时容器
Hyac 不会为每个应用常驻一个运行时容器。应用第一次收到函数请求时,Server 会通过 Docker 创建对应容器:
hyac-app-runtime-<app_id小写>
容器启动后会加载:
- 当前应用的函数代码。
- 当前应用的公共函数。
- 当前应用的环境变量。
- 当前应用的 Python 依赖。
- 当前应用的数据库连接和对象存储上下文。
当 Server 关闭或应用被停止时,运行时容器会被清理。调试时可以通过 Docker 日志查看真实执行输出。
CORS 和外部调用
如果函数需要被浏览器页面直接调用,需要正确配置 CORS。CORS 设置属于应用级配置,会影响当前应用下所有函数。
建议:
- 内部系统调用时只允许明确的业务域名。
- 本地调试时可以临时放宽来源。
- 不要在生产环境长期使用过宽的跨域策略。
应用存储
每个应用会关联自己的对象存储空间。函数代码中推荐通过 ctx.cloud.storage() 访问当前应用的 Bucket,控制台“对象存储”页面也会展示同一空间中的文件。旧入口 ctx.s3 仍保持兼容。
这种设计可以避免不同应用之间误读或误写文件。
常见问题
应用域名打不开
检查三件事:
DOMAIN_NAME是否正确。- DNS 是否包含
*.<DOMAIN_NAME>泛解析。 - Traefik 是否正常监听
80和443。
生产环境使用 docker-compose.yml 和 ACME 证书;开发环境建议使用 .env.dev、docker-compose.dev.yml 和 *.localhost 本地证书。
函数首次调用返回 502
这通常表示运行时容器未能启动或健康检查失败。查看:
docker logs -f hyac_server
docker logs -f hyac-app-runtime-<app_id小写>