diff --git a/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py b/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py index 8bc7b06..9bfd73c 100644 --- a/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py +++ b/src/aibs_informatics_cdk_lib/constructs_/batch/launch_template.py @@ -42,7 +42,6 @@ class BatchLaunchTemplateBuilder(IBatchLaunchTemplateBuilder["BatchLaunchTemplat def grant_instance_role_permissions(self, instance_role: iam.Role): pass - @abstractmethod def create_launch_template( self, descriptor: IBatchEnvironmentDescriptor, diff --git a/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py b/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py index bb7f599..24335fc 100644 --- a/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py +++ b/src/aibs_informatics_cdk_lib/constructs_/external_sns_trigger.py @@ -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] = cdk.Duration.days(7), + sqs_event_source_enabled: Optional[bool] = None, **kwargs, ) -> None: """This intended to be a generic CDK construct that defines resources necessary to @@ -59,7 +63,17 @@ 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" + ) + if sqs_event_source_enabled is None: + sqs_event_source_enabled = env_base.env_type is EnvType.PROD + self.external_sns_event_dlq = sqs.Queue( scope=self, id=env_base.get_construct_id(external_sns_event_name, "sns-event-dlq"), @@ -71,7 +85,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, dead_letter_queue=sqs.DeadLetterQueue( max_receive_count=2, queue=self.external_sns_event_dlq, @@ -103,7 +117,7 @@ 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=sqs_event_source_enabled, ) ) self.external_sns_event_queue.grant_consume_messages(triggered_lambda_fn)