当创建一个构建项目(在AWS CodeBuild中(并将构建规范文件设置为使用源部分中s3(ARN(的路径时,它会创建项目并将ARN作为内联命令而不是文件的路径。有人知道为什么会这样以及如何解决吗?
这似乎只是一个怪癖,但当构建规范托管在S3中时,执行CodeBuild项目没有问题。我检查并确认构建规范是从S3中检索到的,并正常执行。只要运行你的项目并确认,你就不需要"修复"任何东西。
我使用以下构建规范进行了测试,类似于您分享的内容:
provider "aws" {
region = "us-east-1"
}
resource "aws_codebuild_project" "test" {
name = "test-from-tf"
description = "test from terraform"
build_timeout = "60"
service_role = "arn:aws:iam::123456789012:role/service-role/codebuild-al2-service-role"
artifacts { type = "NO_ARTIFACTS" }
environment {
compute_type = "BUILD_GENERAL1_SMALL"
image = "aws/codebuild/standard:1.0"
type = "LINUX_CONTAINER"
image_pull_credentials_type = "CODEBUILD"
}
source {
type = "GITHUB"
location = "https://github.com/shariqmus/eb-python.git"
git_clone_depth = 5
buildspec = "arn:aws:s3:::<bucket>/buildspec.yml"
}
source_version = "master"
}
注意,您还可以将实际的buildspec命令放在TF文件中的"source>buildspec"参数中,这可能是S3 URI显示为buildspec源的一部分的原因。