Terraform创建Cognito用户池域提示域名已占用但查询不存在问题
问题原因
Cognito 用户池域名是 AWS 全局唯一资源,所有 AWS 账号共享同一个域名命名空间,并非仅在当前账号内唯一。你使用的配置默认采用了通用域名 farm_users,该域名已经被其他使用同一份开源配置的用户提前占用,因此你在自己账号内删除残留资源、重新执行操作都无法解决冲突。
你执行查询命令时指定的域名和实际冲突的域名不一致,才会返回当前账号下无该域名的结果。
解决步骤
- 打开
modules/api/main.tf文件,定位到第55行的aws_cognito_user_pool_domain.farm_users_pool_domain资源配置,修改其中的domain参数值,替换为带有自定义标识的唯一名称,比如拼接你的账号标识、随机字符串后缀,避免和其他用户的配置重名 - 清理本地 Terraform 状态中残留的旧域名资源记录:
terraform state rm module.api.aws_cognito_user_pool_domain.farm_users_pool_domain
- 重新执行
terraform apply即可正常创建资源
可选验证操作:修改域名后可以提前执行以下命令确认域名未被占用,返回
ResourceNotFoundException就代表该域名可用aws cognito-idp describe-user-pool-domain --domain "替换为你自定义的新域名"
内容的提问来源于stack exchange,提问作者jjk
相关产品推荐
相关产品推荐

