我看到一个非常奇怪的行为,当我的代码构建在任何阶段遇到超时时,它都不会填充日志。如果成功或失败情况,它会在正确的存储桶中正确填充 S3 日志,但如果超时,它根本不提供任何内容。
有人可以帮忙吗?
设置:-
1.我正在使用 Java 的 AWS-SDK 从我的代码创建代码构建项目
.environment(ProjectEnvironment.builder()
.type(EnvironmentType.LINUX_CONTAINER)
.image("aws/codebuild/standard:7.0")
.computeType(ComputeType.BUILD_GENERAL1_LARGE)
.imagePullCredentialsType(ImagePullCredentialsType.CODEBUILD)
.build())
.timeoutInMinutes(5)
.queuedTimeoutInMinutes(480)
.logsConfig(logsConfig)
.build();
日志配置
S3LogsConfig s3LogsConfig = S3LogsConfig.builder()
.bucketOwnerAccess(BucketOwnerAccess.FULL)
.encryptionDisabled(false)
.location("<Loc>")
.status("ENABLED")
.build();
CloudWatchLogsConfig cloudWatchLogsConfig = CloudWatchLogsConfig.builder()
.status("DISABLED")
.build();
LogsConfig logsConfig = LogsConfig.builder()
.cloudWatchLogs(cloudWatchLogsConfig)
.s3Logs(s3LogsConfig)
.build();
配置中我缺少什么吗?
我尝试增加构建的超时时间,但这也没有帮助。在一个令人高兴的场景中,我希望在超时的情况下,也应该在我的 S3 存储桶中提供日志。
您可以使用 lambda 来检查您的构建状态,您可以从 lambda 代码填充您的 s3 日志,因此如果超时,它会为您提供日志,但是,这可能仅在您的代码构建项目在 15 分钟内完成时才有效,如您所知lambda 的超时时间为 15 分钟