Terraform创建aws_amplify_app失败:Bitbucket仓库权限问题求助
解决方案:Terraform创建AWS Amplify App对接Bitbucket权限报错
先解决核心权限问题(无痕访问仓库报错指向账号权限)
- 确认Bitbucket账号对目标仓库的访问权:登录Bitbucket,直接打开目标仓库页面,确保能正常查看代码。如果是私有仓库,检查账号是否在仓库的成员列表中,权限级别至少为读权限(避免使用“访客”权限)。
- 验证OAuth令牌的权限范围:在Bitbucket的「设置」→「OAuth消费者」里找到对应令牌,确认勾选了
repository:read、repository:write(若需部署写操作)、webhook:manage权限,缺少任何一个都可能导致授权失败。
检查Terraform配置细节
- 核对仓库路径格式:
repository参数必须严格按照Bitbucket工作区名/仓库名填写,大小写要和Bitbucket上完全一致(Bitbucket仓库名区分大小写)。 - 确认OAuth令牌有效性:重新生成一次Bitbucket OAuth令牌,直接复制粘贴到Terraform变量中,避免复制时出现空格、截断等错误。
- 升级AWS Provider版本:旧版
hashicorp/awsprovider可能存在集成bug,将provider版本升级到最新稳定版再尝试部署。
重置Bitbucket授权关系
- 撤销现有授权:在Bitbucket的「设置」→「已授权的应用」里找到AWS Amplify,点击撤销授权。
- 重新建立授权:可以先在AWS Amplify控制台手动连接一次目标Bitbucket仓库,确认能成功连接后,再用Terraform配置部署,确保授权链路正常。
额外排查点
- 检查Bitbucket工作区权限:部分工作区会限制第三方应用访问,在工作区的「设置」→「应用访问控制」里确认AWS Amplify被允许访问该工作区的仓库。
- 切换AWS区域测试:少数AWS区域可能存在集成兼容性问题,切换到常用区域(如us-east-1)尝试创建应用,排除区域限制问题。
参考Terraform配置示例
resource "aws_amplify_app" "test_amplify" { name = "test-amplify-uat" repository = "your-bitbucket-workspace/your-repo-name" oauth_token = var.bitbucket_oauth_token build_spec = <<EOF version: 1 frontend: phases: preBuild: commands: - npm install build: commands: - npm run build artifacts: baseDirectory: build files: - '**/*' cache: paths: - node_modules/**/* EOF }
内容的提问来源于stack exchange,提问作者munchine
相关产品推荐
相关产品推荐

