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

如何用Terraform创建Github V1版AWS CodePipeline?遇区域不可用问题

关于在AWS EU_CENTRAL_1区域用Terraform创建Github V1版CodePipeline的问题

我希望用Terraform创建基于Github Version 1的AWS CodePipeline(不能用AWS Codestar),请问还能实现吗?如果可以该怎么操作?我创建管道时遇到了这个错误:
Error creating CodePipeline: InvalidActionDeclarationException: ActionType (Category: 'Source', Provider: 'Github', Owner: 'ThirdParty', Version: '1') in action 'Source' is not available in region EU_CENTRAL_1

附上的Terraform代码:

resource "aws_codepipeline" "ecs_pipeline" {
 ...
  stage {
    name = "Source"
    action {
      name             = "Source"
      category         = "Source"
      owner            = "ThirdParty"
      provider         = "Github"
      version          = 1
      run_order        = 1
      output_artifacts = ["SourceArtifact"]
      configuration = {

        RepositoryName       = var.repo_name
        BranchName           = var.branch
        OAuthToken           = var.github_oauth_token
        Owner                = var.repo_owner
      }
    }
  }
  stage {
    name = "Build"
    ...
  }
  stage {
    name = "Deploy"
    ...
  }
}

结论

Github Version 1的CodePipeline源动作已经在包括EU_CENTRAL_1在内的大部分AWS区域停止支持,且AWS已将其标记为弃用状态,不建议继续使用。可通过以下两种方式解决问题:

方案1:改用Github Version 2源动作(推荐)

Github V2源动作使用AWS CodeStar Connections授权,安全性更高,且在所有支持CodePipeline的区域都可用。修改Terraform代码如下:

resource "aws_codepipeline" "ecs_pipeline" {
 ...
  stage {
    name = "Source"
    action {
      name             = "Source"
      category         = "Source"
      owner            = "AWS"  # 此处改为AWS
      provider         = "GitHub"  # 首字母大写(AWS官方定义为GitHub)
      version          = "2"  # 切换到版本2
      run_order        = 1
      output_artifacts = ["SourceArtifact"]
      configuration = {
        RepositoryName       = var.repo_name
        BranchName           = var.branch
        ConnectionArn        = var.github_connection_arn  # 替换为你的CodeStar Connection ARN
        FullRepositoryId     = "${var.repo_owner}/${var.repo_name}"  # 需要完整仓库ID
      }
    }
  }
  # Build和Deploy阶段保持不变
  stage {
    name = "Build"
    ...
  }
  stage {
    name = "Deploy"
    ...
  }
}

注意事项:

  • 需先在AWS控制台创建CodeStar Connection,关联你的Github账号和目标仓库,再获取该Connection的ARN作为var.github_connection_arn的值。
  • V2版本不再使用OAuthToken,而是依赖CodeStar Connection的授权,这是AWS推荐的安全方式。

方案2:切换到仍支持Github V1的区域(不推荐)

如果非要坚持使用Github V1,只能切换到AWS仍保留该动作的区域,比如us-east-1。但这种方式风险极高,AWS随时可能在剩余区域移除V1支持,后续维护会非常麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 22:07:48