跳到主要内容

排障

Iact3 找不到模板

如果配置中没有指定 template_config,Iact3 会在项目根目录查找以下后缀:

  • .template.json
  • .template.yaml
  • .template.yml

如果仍未找到,它会继续查找 Terraform .tf 文件。模板位于其他位置时,传入 -t 或设置 template_config.template_location

一次测试创建了太多栈

每个测试名称都会和每个解析后的地域相乘。检查 generalproject 和每个 tests 条目中继承的 regions

调试时使用 --test-names-r 缩小范围:

iact3 test run --test-names default -r cn-hangzhou

失败栈在检查前被删除

运行时加上:

iact3 test run --keep-failed

只有在明确想保留所有栈时才使用 --no-delete

清理命令没有找到栈

Iact3 清理依赖它添加到栈上的标签。如果标签被移除,或栈不是 Iact3 创建的,可 以在 ROS 控制台清理,或传入明确的栈 ID:

iact3 test clean -r cn-hangzhou --stack-id <stack-id>

凭证没有生效

检查当前 Aliyun CLI profile 和配置路径:

iact3 --profile default validate -t template.yml

如果使用环境变量,确认运行 Iact3 的 shell 或 CI job 中同时设置了 ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET

伪参数没有解析

$[iact3-auto] 依赖 ROS 参数约束或字段名约定。如果参数名是自定义名称,请在 parameters 中直接提供明确值。

如果模板需要指定可用区中的 VSwitch,请同时包含 zone 参数。

Hook 失败

Hook 的 stdout 或 stderr 会写到输出目录。报告显示 hook 失败时,使用相同参数在 Iact3 外单独运行该命令。

注意,栈输出只有在资源栈已经产生输出后,才能用于 post-create 和 pre-delete 阶段。