SuperAPI AI 工具集

cors-deployment

部署与运维

查看项目

更新于 10-15 20:07

技能介绍

用途:在 boise-state-development/agentcore-public-stack 项目中统一管理所有 CDK 栈、GitHub Actions 工作流和 Python 后端的 CORS 来源配置,适合修改 CORS 来源或新增需要 CORS 的栈。

配置模型:采用两层模型并应用于每个栈。CDK_DOMAIN_NAME 始终自动转换为 https://{value};CDK_CORS_ORIGINS 为可选的全局附加来源,逗号分隔;各分区还有可选的 CDK_*_CORS_ORIGINS 作为栈专属附加项。localhost 从不自动包含,本地开发需显式设置 CDK_CORS_ORIGINS=http://localhost:4200。

核心助手:所有栈使用 infrastructure/lib/config.ts 中的 buildCorsOrigins(config, additionalOrigins?),返回去重后的 string[]。可用于容器环境变量 CORS_ORIGINS,也可用于 S3 存储桶的 cors allowedOrigins。

配置派生:config.ts 将 CDK_DOMAIN_NAME 转为 domainName 并生成 https://{domainName}(始终排第一),再追加 CDK_CORS_ORIGINS,合并为 config.corsOrigins;助手负责拆分、去重并按需追加分区来源。

Python 后端:app_api/main.py 与 inference_api/main.py 均读取 CORS_ORIGINS 环境变量并逗号拆分,无硬编码回退;该变量为空则不允任何来源。

工作流要求:CDK_DOMAIN_NAME 与 CDK_CORS_ORIGINS 必须放在 job 级 env 块(而非 workflow 级),因为需要用到 vars.* 和 environment:。每个执行 synth 或 deploy 的工作流都需包含这两个变量。

新增栈步骤:从 ./config 导入 buildCorsOrigins;调用并传入本分区 additionalCorsOrigins;在配置接口添加 additionalCorsOrigins?: string;在 loadConfig() 中读取 CDK_MY_SECTION_CORS_ORIGINS;把两个变量加入工作流 job env;在 infrastructure/test/cors.test.ts 添加测试。

常见错误:把 vars.* 放在 workflow 级 env 会解析为空字符串;在 buildCorsOrigins 或 Python 回退中硬编码 localhost;新工作流遗漏 CDK_DOMAIN_NAME;直接使用 config.domainName 而非 buildCorsOrigins();在 cdk.context.json 里设置 corsOrigins 会覆盖域名派生。

限制:资料未提供收费、价格、平台支持范围及具体测试断言等细节。