我是AWS CodeBuild的新手,我一直在努力研究如何并行运行构建的各个部分(甚至只是对我解决方案中的每个项目使用相同的buildspec.yml )。
我认为批处理->构建列表是可行的。根据我对文档的理解,这将为构建列表中的每个项目运行buildspec中的阶段。
不幸的是,情况似乎并非如此-批处理部分似乎被忽略,并且buildspec运行阶段一次,对于项目级别上的默认环境变量。
我的建筑规范是
version: 0.2
batch:
fast-fail: false
build-list:
- identifier: getPrintJobNote
env:
variables:
IMAGE_REPO_NAME: getprintjobnote
FOLDER_NAME: getPrintJobNote
ignore-failure: false
- identifier: GetPrintJobFilters
env:
variables:
IMAGE_REPO_NAME: getprintjobfilters
FOLDER_NAME: GetPrintJobFilters
ignore-failure: false
phases:
pre_build:
commands:
- echo Logging into Amazon ECR
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
build:
commands:
- echo Building lambda docker container
- echo Build path $CODEBUILD_SRC_DIR
- cd $CODEBUILD_SRC_DIR/src/$FOLDER_NAME
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
post_build:
commands:
- echo Pushing to Amazon ECR
- docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG我的buildspec中有什么问题吗?构建列表是否没有完成我认为它所做的事情?还是需要在某个地方配置一些其他东西来启用它呢?
在项目配置中,我找到了“启用并发构建限制-可选”的设置。我试着改变了这个,但得到了一个错误:
Project-level concurrent build limit cannot exceed the account-level concurrent build limit of 1.这可能与此无关,但可能是因为我的账户是新的.我认为默认值应该是60。
发布于 2022-02-16 21:52:23
有类似的问题,原来批生成是一个单独的构建类型。转到带有重写的project -> start build,然后选择批生成。
我还拆分了buildspec文件->第一规范有批配置,第二个有“实际”阶段。使用buildspec:指令。但不确定是否需要这样做。
另外:如果生成是钩子触发的,这也必须配置为运行批生成。
https://stackoverflow.com/questions/69155365
复制相似问题