Amazon web services Terraform-多个AWS代码构建项目需要AWS\u代码构建\u源\u凭证
我有很多正在使用的代码构建项目,它们依赖于要创建的Amazon web services Terraform-多个AWS代码构建项目需要AWS\u代码构建\u源\u凭证,amazon-web-services,terraform,aws-codebuild,Amazon Web Services,Terraform,Aws Codebuild,我有很多正在使用的代码构建项目,它们依赖于要创建的aws\u代码构建\u源代码\u凭证 对我来说,问题是有些项目是在不同的文件夹中指定的,并且帐户的codebuild只有一个源凭据 这意味着,如果我随后删除了一个“堆栈”,该堆栈已创建了aws\u codebuild\u source\u凭证,以便能够创建codebuild项目,则从该点开始删除所有codebuild的身份验证令牌 我似乎找不到aws\u codebuild\u source\u凭证的数据提供程序,因此我正在寻找一种方法来引用其他
aws\u代码构建\u源代码\u凭证
对我来说,问题是有些项目是在不同的文件夹中指定的,并且帐户的codebuild只有一个源凭据
这意味着,如果我随后删除了一个“堆栈”,该堆栈已创建了aws\u codebuild\u source\u凭证
,以便能够创建codebuild项目,则从该点开始删除所有codebuild的身份验证令牌
我似乎找不到aws\u codebuild\u source\u凭证的数据提供程序,因此我正在寻找一种方法来引用其他地方已经创建的数据提供程序
创建代码构建项目时,需要提供oAuth令牌:
auth {
type = "OAUTH"
resource = aws_codebuild_source_credential.github.arn
}
问题是我如何共享一个aws\u codebuild\u source\u凭证
,这样我就可以将其传递到单独的代码构建项目中,我是否应该对任何一个文件夹运行一个销毁,而该令牌将不受影响?详细介绍您想要如何组织您的地形代码,我要做的是
- 将
aws\u codebuild\u source\u credential
资源与aws\u ssm\u参数
资源一起移动到单独的存储库中(甚至可能将创建作为一个模块)
- 首先调配这些资源(预播种),当您调配
aws\u codebuild\u source\u凭证时
将其arn
存储在aws\u ssm\u参数
的已知名称下
- 下次提供新的代码构建项目时,请通过相应的数据资源从SSM检索源凭证arn
我确实找到了一种方法,我几乎完全按照你的建议做了,我已经在SSM中拥有github令牌,所以我将github auth创建移动到一个单独的文件夹,然后使用字符串创建它,但我确实喜欢将它放在SSM中的想法。我推迟发布我自己的答案,直到我确定stringify确实能正常工作,这昨晚花了我一点时间,但本质上:resource=“arn:aws:codebuild:${var.region}:${var.account_id}:token/github”也适用于将来可能偶然发现它的任何人,此cli命令对于动态检查源凭据可用性非常有用:aws codebuild list源凭据