Skip to content

Commit

Permalink
make external sns trigger construct more configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
rpmcginty committed Nov 20, 2024
1 parent 612fbdb commit ce6af7d
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ def __init__(
external_sns_event_name: Union[str, ResourceNameBaseEnum],
external_sns_topic_arn: str,
external_sns_event_queue_filters: Optional[Sequence[Mapping[str, Any]]] = None,
external_sns_event_queue_name: Optional[str] = None,
external_sns_event_dlq_name: Optional[str] = None,
external_sns_event_queue_retention_period: Optional[cdk.Duration] = None,
sqs_event_source_enabled: Optional[bool] = None,
**kwargs,
) -> None:
"""This intended to be a generic CDK construct that defines resources necessary to
Expand Down Expand Up @@ -59,7 +63,14 @@ def __init__(
"""
super().__init__(scope=scope, id=id)

external_sns_event_dlq_name = env_base.prefixed(external_sns_event_name, "sns-event-dlq")
if external_sns_event_queue_name is None:
external_sns_event_queue_name = env_base.prefixed(
external_sns_event_name, "sns-event-queue"
)
if external_sns_event_dlq_name is None:
external_sns_event_dlq_name = env_base.prefixed(
external_sns_event_name, "sns-event-dlq"
)
self.external_sns_event_dlq = sqs.Queue(
scope=self,
id=env_base.get_construct_id(external_sns_event_name, "sns-event-dlq"),
Expand All @@ -71,7 +82,7 @@ def __init__(
scope=self,
id=env_base.get_construct_id(external_sns_event_name, "sns-event-queue"),
queue_name=env_base.prefixed(external_sns_event_name, "sns-event-queue"),
retention_period=cdk.Duration.days(7),
retention_period=external_sns_event_queue_retention_period or cdk.Duration.days(7),
dead_letter_queue=sqs.DeadLetterQueue(
max_receive_count=2,
queue=self.external_sns_event_dlq,
Expand Down Expand Up @@ -103,7 +114,9 @@ def __init__(
queue=self.external_sns_event_queue,
report_batch_item_failures=True,
filters=external_sns_event_queue_filters,
enabled=(env_base.env_type is EnvType.PROD),
enabled=(env_base.env_type is EnvType.PROD)
if sqs_event_source_enabled is None
else sqs_event_source_enabled,
)
)
self.external_sns_event_queue.grant_consume_messages(triggered_lambda_fn)
Expand Down

0 comments on commit ce6af7d

Please sign in to comment.