def __init__()

in source/lib/blueprints/byom/byom_batch_pipeline.py [0:0]


    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # Parameteres #
        blueprint_bucket_name = pf.create_blueprint_bucket_name_parameter(self)
        assets_bucket_name = pf.create_assets_bucket_name_parameter(self)
        custom_algorithms_ecr_repo_arn = pf.create_custom_algorithms_ecr_repo_arn_parameter(self)
        kms_key_arn = pf.create_kms_key_arn_parameter(self)
        algorithm_image_uri = pf.create_algorithm_image_uri_parameter(self)
        model_name = pf.create_model_name_parameter(self)
        model_artifact_location = pf.create_model_artifact_location_parameter(self)
        inference_instance = pf.create_inference_instance_parameter(self)
        batch_input_bucket = pf.create_batch_input_bucket_name_parameter(self)
        batch_inference_data = pf.create_batch_inference_data_parameter(self)
        batch_job_output_location = pf.create_batch_job_output_location_parameter(self)
        model_package_group_name = pf.create_model_package_group_name_parameter(self)
        model_package_name = pf.create_model_package_name_parameter(self)

        # Conditions
        custom_algorithms_ecr_repo_arn_provided = cf.create_custom_algorithms_ecr_repo_arn_provided_condition(
            self, custom_algorithms_ecr_repo_arn
        )
        kms_key_arn_provided = cf.create_kms_key_arn_provided_condition(self, kms_key_arn)
        model_registry_provided = cf.create_model_registry_provided_condition(self, model_package_name)

        # Resources #
        assets_bucket = s3.Bucket.from_bucket_name(self, "ImportedAssetsBucket", assets_bucket_name.value_as_string)
        # getting blueprint bucket object from its name - will be used later in the stack
        blueprint_bucket = s3.Bucket.from_bucket_name(
            self, "ImportedBlueprintBucket", blueprint_bucket_name.value_as_string
        )

        sm_layer = sagemaker_layer(self, blueprint_bucket)
        # creating a sagemaker model
        # create Sagemaker role
        sagemaker_role = create_sagemaker_role(
            self,
            "MLOpsSagemakerBatchRole",
            custom_algorithms_ecr_arn=custom_algorithms_ecr_repo_arn.value_as_string,
            kms_key_arn=kms_key_arn.value_as_string,
            model_package_group_name=model_package_group_name.value_as_string,
            assets_bucket_name=assets_bucket_name.value_as_string,
            input_bucket_name=batch_input_bucket.value_as_string,
            input_s3_location=batch_inference_data.value_as_string,
            output_s3_location=batch_job_output_location.value_as_string,
            ecr_repo_arn_provided_condition=custom_algorithms_ecr_repo_arn_provided,
            kms_key_arn_provided_condition=kms_key_arn_provided,
            model_registry_provided_condition=model_registry_provided,
        )

        # create sagemaker model
        sagemaker_model = create_sagemaker_model(
            self,
            "MLOpsSagemakerModel",
            execution_role=sagemaker_role,
            model_registry_provided=model_registry_provided,
            algorithm_image_uri=algorithm_image_uri.value_as_string,
            assets_bucket_name=assets_bucket_name.value_as_string,
            model_artifact_location=model_artifact_location.value_as_string,
            model_package_name=model_package_name.value_as_string,
            model_name=model_name.value_as_string,
        )

        # create batch tranform lambda
        batch_transform_lambda = batch_transform(
            self,
            "BatchTranformLambda",
            blueprint_bucket,
            assets_bucket,
            sagemaker_model.attr_model_name,
            inference_instance.value_as_string,
            batch_input_bucket.value_as_string,
            batch_inference_data.value_as_string,
            batch_job_output_location.value_as_string,
            core.Fn.condition_if(
                kms_key_arn_provided.logical_id, kms_key_arn.value_as_string, core.Aws.NO_VALUE
            ).to_string(),
            sm_layer,
        )

        # create custom resource to invoke the batch transform lambda
        invoke_lambda_custom_resource = create_invoke_lambda_custom_resource(
            self,
            "InvokeBatchLambda",
            batch_transform_lambda.function_arn,
            batch_transform_lambda.function_name,
            blueprint_bucket,
            {
                "Resource": "InvokeLambda",
                "function_name": batch_transform_lambda.function_name,
                "sagemaker_model_name": sagemaker_model.attr_model_name,
                "model_name": model_name.value_as_string,
                "inference_instance": inference_instance.value_as_string,
                "algorithm_image": algorithm_image_uri.value_as_string,
                "model_artifact": model_artifact_location.value_as_string,
                "assets_bucket": assets_bucket.bucket_name,
                "batch_inference_data": batch_inference_data.value_as_string,
                "batch_job_output_location": batch_job_output_location.value_as_string,
                "custom_algorithms_ecr_arn": custom_algorithms_ecr_repo_arn.value_as_string,
                "kms_key_arn": kms_key_arn.value_as_string,
            },
        )

        invoke_lambda_custom_resource.node.add_dependency(batch_transform_lambda)

        core.CfnOutput(
            self,
            id="SageMakerModelName",
            value=sagemaker_model.attr_model_name,
            description="The name of the SageMaker model used by the batch transform job",
        )

        core.CfnOutput(
            self,
            id="BatchTransformJobName",
            value=f"{sagemaker_model.attr_model_name}-batch-transform-*",
            description="The name of the SageMaker batch transform job",
        )

        core.CfnOutput(
            self,
            id="BatchTransformOutputLocation",
            value=f"https://s3.console.aws.amazon.com/s3/buckets/{batch_job_output_location.value_as_string}/",
            description="Output location of the batch transform. Our will be saved under the job name",
        )