在 CodeBuild 中构建超时的情况下,S3 日志不会被填充

问题描述 投票:0回答:1

我看到一个非常奇怪的行为,当我的代码构建在任何阶段遇到超时时,它都不会填充日志。如果成功或失败情况,它会在正确的存储桶中正确填充 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 存储桶中提供日志。

amazon-web-services amazon-s3 aws-codebuild buildspec
1个回答
0
投票

您可以使用 lambda 来检查您的构建状态,您可以从 lambda 代码填充您的 s3 日志,因此如果超时,它会为您提供日志,但是,这可能仅在您的代码构建项目在 15 分钟内完成时才有效,如您所知lambda 的超时时间为 15 分钟

© www.soinside.com 2019 - 2024. All rights reserved.