AwsLogDriverMode
- class aws_cdk.aws_ecs.AwsLogDriverMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
Enum
awslogs provides two modes for delivering messages from the container to the log driver.
- ExampleMetadata:
infused
Example:
# cluster: ecs.Cluster # Create a Task Definition for the container to start task_definition = ecs.Ec2TaskDefinition(self, "TaskDef") task_definition.add_container("TheContainer", image=ecs.ContainerImage.from_asset(path.resolve(__dirname, "..", "eventhandler-image")), memory_limit_mi_b=256, logging=ecs.AwsLogDriver(stream_prefix="EventDemo", mode=ecs.AwsLogDriverMode.NON_BLOCKING) ) # An Rule that describes the event trigger (in this case a scheduled run) rule = events.Rule(self, "Rule", schedule=events.Schedule.expression("rate(1 min)") ) # Pass an environment variable to the container 'TheContainer' in the task rule.add_target(targets.EcsTask( cluster=cluster, task_definition=task_definition, task_count=1, container_overrides=[targets.ContainerOverride( container_name="TheContainer", environment=[targets.TaskEnvironmentVariable( name="I_WAS_TRIGGERED", value="From CloudWatch Events" )] )] ))
Attributes
- BLOCKING
(default) direct, blocking delivery from container to driver.
- NON_BLOCKING
The non-blocking message delivery mode prevents applications from blocking due to logging back pressure.
Applications are likely to fail in unexpected ways when STDERR or STDOUT streams block.