ECS 日志保留设置

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

我想通过

CDK

设置 ecs fargate 服务 logretantion

该服务有两个容器和一个LogGroup。

var logRetention = logs.RetentionDays.ONE_DAY 

const logGroup = new logs.LogGroup(this, 'ServiceLogGroup', {
  logGroupName: ecsInfos['logGroup'],
  removalPolicy: RemovalPolicy.DESTROY,

});
const nginxContainer = taskDefinitionAdmin.addContainer("NginxContainer", {
  image: nginxImage,
  containerName:ecsInfos['containerNginx'],
  logging: ecs.LogDriver.awsLogs({
    streamPrefix: "log-nginx",
    logRetention:logRetention,
    logGroup,
  }),
});

const djangoContainer = taskDefinitionAdmin.addContainer("DjangoContainer", {
  image: djangoImage,
  containerName:ecsInfos['containerDjango'],
  logging: ecs.LogDriver.awsLogs({
    streamPrefix: "log-django",
    logRetention:logRetention,
    logGroup,
  }),
});

此代码显示以下错误。

Error: Cannot specify both `logGroup` and `logRetentionDays`.
    at new AwsLogDriver (/Users/whitebear/MyCode/httproot/proj_cdk/node_modules/aws-cdk-lib/aws-ecs/lib/log-drivers/aws-log-driver.js:1:1214)
    at Function.awsLogs (/Users/whitebear/MyCode/httproot/proj_cdk/node_modules/aws-cdk-lib/aws-ecs/lib/log-drivers/log-driver.js:1:624)
    at new CdkStFargateStack (/Users/whitebear/MyCode/httproot/proj_cdk/lib/cdk_st-fargate-stack.ts:81:30)
    at Object.<anonymous> (/Users/whitebear/MyCode/httproot/proj_cdk/bin/cdk_st.ts:45:17)
    at Module._compile (node:internal/modules/cjs/loader:1159:14)
    at Module.m._compile (/Users/whitebear/MyCode/httproot/proj_cdk/node_modules/ts-node/src/index.ts:1056:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/whitebear/MyCode/httproot/proj_cdk/node_modules/ts-node/src/index.ts:1059:12)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Function.Module._load (node:internal/modules/cjs/loader:878:12)

我想我应该在

logRetention
中设置
logs.LogGroup
,但是没有
logRetantion
属性。

我该如何解决这个问题?

amazon-ecs amazon-cloudwatch aws-cdk
1个回答
0
投票

如果您要创建

LogGroup
,那么您需要在 日志组 本身上设置保留:

const logGroup = new logs.LogGroup(this, 'ServiceLogGroup', {
  logGroupName: ecsInfos['logGroup'],
  removalPolicy: RemovalPolicy.DESTROY,
  retention: logRetention 
});

在任务定义中指定日志配置时,您可以指定现有日志组,也可以指定将为您创建的新日志组的所有其他设置。

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