Skip to content

events-targets: dead letter queue for an ECS task target #21118

@gregwebs

Description

@gregwebs

Describe the feature

For an Event Bridge rule with an ECS task target, support a dead letter queue.

Use Case

This has been implemented for other targets already such as Lambda. It may be useful to track problems with invoking the task.

Proposed Solution

workaround based on the pattern of this PR.
I tested that this produces a dead letter queue in the event bridge rule target.

import * as events from '@aws-cdk/aws-events';
import * as events_targets from '@aws-cdk/aws-events-targets';
import * as sqs from '@aws-cdk/aws-sqs';

interface EcsTaskProps extends events_targets.EcsTaskProps {
    deadLetterQueue?: sqs.Queue;
}

class EcsTask implements events.IRuleTarget {
    readonly deadLetterQueue?: sqs.Queue;
    readonly wrappedTask: events_targets.EcsTask
    constructor(private readonly props: EcsTaskProps) {
        this.deadLetterQueue = props.deadLetterQueue ;
        this.wrappedTask = new events_targets.EcsTask(props);
    }

    public bind(rule: events.IRule, _id?: string): events.RuleTargetConfig {
        const wrappedResult = this.wrappedTask.bind(rule, _id);
        let deadLetterConfig: events.CfnRule.DeadLetterConfigProperty | undefined = undefined
        if (this.deadLetterQueue) {
            events_targets.addToDeadLetterQueueResourcePolicy(rule, this.deadLetterQueue);
            deadLetterConfig = this.deadLetterQueue ? { arn: this.deadLetterQueue?.queueArn } : undefined
        }
        return { ...wrappedResult, deadLetterConfig }
    }
}

Other Information

No response

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

CDK version used

2

Environment details (OS name and version, etc.)

Mac

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions