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
CDK version used
2
Environment details (OS name and version, etc.)
Mac
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.
Other Information
No response
Acknowledgements
CDK version used
2
Environment details (OS name and version, etc.)
Mac