You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将现有ECR仓库导入Terraform?遇正则匹配错误求助

解决Terraform导入ECR仓库时的正则约束错误

问题场景

尝试导入现有ECR仓库时,编写了以下Terraform配置:

import {
  to = aws_ecr_repository.tamarack_api
  id = "arn:aws:ecr:us-west-2:xxxxxxxxxxxx:repository/tamarack-api"
}

resource "aws_ecr_repository" tamarack_api {
  name = "tamarack-api"
}

执行terraform plan时触发错误:

Error: reading ECR Repository (arn:aws:ecr:us-west-2:xxxxxxxxxxxx:repository/tamarack-api): InvalidParameterException: Invalid parameter at 'repositoryName' failed to satisfy constraint: 'must satisfy regular expression '(?:[a-z0-9]+(?:[.-][a-z0-9]+)/)*[a-z0-9]+(?:[.-][a-z0-9]+)*''

手动用Go语言在regex101测试tamarack-api符合该正则,但错误依然存在。

解决方案

将import块中的id值替换为仓库名称,而非ARN:

import {
  to = aws_ecr_repository.tamarack_api
  id = "tamarack-api"
}

resource "aws_ecr_repository" tamarack_api {
  name = "tamarack-api"
}

原因说明

Terraform的aws_ecr_repository资源在导入时,id参数预期接收的是ECR仓库名称,而非完整ARN。虽然你的ARN格式正确,但Terraform在解析ARN提取仓库名的过程中可能出现异常,导致传递给AWS API的仓库名不符合约束(比如意外引入多余字符)。

如果需要验证,可以先通过命令行手动执行导入:

terraform import aws_ecr_repository.tamarack-api tamarack-api

确认导入成功后,再使用配置文件中的import块即可正常执行terraform plan。

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:36:02