我想通过
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
属性。
我该如何解决这个问题?
如果您要创建
LogGroup
,那么您需要在 日志组 本身上设置保留:
const logGroup = new logs.LogGroup(this, 'ServiceLogGroup', {
logGroupName: ecsInfos['logGroup'],
removalPolicy: RemovalPolicy.DESTROY,
retention: logRetention
});
在任务定义中指定日志配置时,您可以指定现有日志组,也可以指定将为您创建的新日志组的所有其他设置。