@@ -539,7 +539,7 @@ def _get_static_pipeline_execution_arn(sagemaker_session):
539
539
_deploy_static_endpoint (
540
540
execution_arn = pipeline_execution_arn , sagemaker_session = sagemaker_session
541
541
)
542
-
542
+ logging . info ( f"Using static pipeline { pipeline_execution_arn } " )
543
543
return pipeline_execution_arn
544
544
545
545
@@ -608,16 +608,23 @@ def static_training_job_trial_component(
608
608
entities = [LineageEntityEnum .TRIAL_COMPONENT ], sources = [LineageSourceEnum .TRAINING_JOB ]
609
609
)
610
610
611
+ model_artifact_arn = static_model_artifact .artifact_arn
611
612
query_result = LineageQuery (sagemaker_session ).query (
612
- start_arns = [static_model_artifact . artifact_arn ],
613
+ start_arns = [model_artifact_arn ],
613
614
query_filter = query_filter ,
614
615
direction = LineageQueryDirectionEnum .ASCENDANTS ,
615
616
include_edges = False ,
616
617
)
618
+ logging .info (
619
+ f"Found { len (query_result .vertices )} trial components from model artifact { model_artifact_arn } "
620
+ )
617
621
training_jobs = []
618
622
for vertex in query_result .vertices :
619
623
training_jobs .append (vertex .to_lineage_object ())
620
624
625
+ if not training_jobs :
626
+ raise Exception (f"No training job found for static model artifact { model_artifact_arn } " )
627
+
621
628
return training_jobs [0 ]
622
629
623
630
@@ -643,6 +650,7 @@ def static_transform_job_trial_component(
643
650
@pytest .fixture
644
651
def static_endpoint_context (sagemaker_session , static_pipeline_execution_arn ):
645
652
endpoint_arn = get_endpoint_arn_from_static_pipeline (sagemaker_session )
653
+ logging .info (f"Using endpoint { endpoint_arn } from static pipeline" )
646
654
647
655
if endpoint_arn is None :
648
656
_deploy_static_endpoint (
@@ -651,6 +659,8 @@ def static_endpoint_context(sagemaker_session, static_pipeline_execution_arn):
651
659
)
652
660
endpoint_arn = get_endpoint_arn_from_static_pipeline (sagemaker_session )
653
661
662
+ endpoint_arn = get_endpoint_arn_from_static_pipeline (sagemaker_session )
663
+
654
664
contexts = sagemaker_session .sagemaker_client .list_contexts (SourceUri = endpoint_arn )[
655
665
"ContextSummaries"
656
666
]
@@ -664,9 +674,10 @@ def static_endpoint_context(sagemaker_session, static_pipeline_execution_arn):
664
674
)
665
675
)
666
676
667
- yield context .EndpointContext .load (
668
- contexts [0 ]["ContextName" ], sagemaker_session = sagemaker_session
669
- )
677
+ endpoint_context = context [0 ]
678
+ context_arn = endpoint_context ["ContextArn" ]
679
+ logging .info (f"Using context { context_arn } for static endpoint context" )
680
+ yield context .EndpointContext .load (endpoint_context ["ContextName" ], sagemaker_session = sagemaker_session )
670
681
671
682
672
683
@pytest .fixture
@@ -709,27 +720,41 @@ def static_model_artifact(sagemaker_session, static_pipeline_execution_arn):
709
720
)
710
721
)
711
722
712
- yield artifact . ModelArtifact . load (
713
- artifacts [ 0 ][ "ArtifactArn" ], sagemaker_session = sagemaker_session
714
- )
723
+ artifact_arn = artifacts [ 0 ][ "ArtifactArn" ]
724
+ logging . info ( f"Using static model artifact { artifact_arn } " )
725
+ yield artifact . ModelArtifact . load ( artifact_arn , sagemaker_session = sagemaker_session )
715
726
716
727
717
728
@pytest .fixture
718
729
def static_dataset_artifact (static_model_artifact , sagemaker_session ):
730
+ model_artifact_arn = static_model_artifact .artifact_arn
719
731
dataset_associations = sagemaker_session .sagemaker_client .list_associations (
720
- DestinationArn = static_model_artifact .artifact_arn , SourceType = "DataSet"
732
+ DestinationArn = model_artifact_arn , SourceType = "DataSet"
733
+ )
734
+ logging .info (
735
+ f"Found { len (dataset_associations )} associated with model artifact { model_artifact_arn } "
721
736
)
722
737
if len (dataset_associations ["AssociationSummaries" ]) == 0 :
723
738
# no directly associated dataset. work backwards from the model
724
739
model_associations = sagemaker_session .sagemaker_client .list_associations (
725
- DestinationArn = static_model_artifact .artifact_arn , SourceType = "Model"
726
- )
740
+ DestinationArn = model_artifact_arn , SourceType = "Model"
741
+ )["AssociationSummaries" ]
742
+
743
+ if len (model_associations ) == 0 :
744
+ raise Exception (f"No models associated with model artifact { model_artifact_arn } " )
745
+
727
746
training_job_associations = sagemaker_session .sagemaker_client .list_associations (
728
- DestinationArn = model_associations ["AssociationSummaries" ][ 0 ]["SourceArn" ],
747
+ DestinationArn = model_associations [0 ]["SourceArn" ],
729
748
SourceType = "SageMakerTrainingJob" ,
730
- )
749
+ )["AssociationSummaries" ]
750
+
751
+ if len (training_job_associations ) == 0 :
752
+ raise Exception (
753
+ f"No training jobs associated with models for model artifact { model_artifact_arn } "
754
+ )
755
+
731
756
dataset_associations = sagemaker_session .sagemaker_client .list_associations (
732
- DestinationArn = training_job_associations ["AssociationSummaries" ][ 0 ]["SourceArn" ],
757
+ DestinationArn = training_job_associations [0 ]["SourceArn" ],
733
758
SourceType = "DataSet" ,
734
759
)
735
760
0 commit comments