@@ -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,8 +674,11 @@ def static_endpoint_context(sagemaker_session, static_pipeline_execution_arn):
664
674
)
665
675
)
666
676
677
+ endpoint_context = context [0 ]
678
+ context_arn = endpoint_context ["ContextArn" ]
679
+ logging .info (f"Using context { context_arn } for static endpoint context" )
667
680
yield context .EndpointContext .load (
668
- contexts [ 0 ] ["ContextName" ], sagemaker_session = sagemaker_session
681
+ endpoint_context ["ContextName" ], sagemaker_session = sagemaker_session
669
682
)
670
683
671
684
@@ -709,27 +722,41 @@ def static_model_artifact(sagemaker_session, static_pipeline_execution_arn):
709
722
)
710
723
)
711
724
712
- yield artifact . ModelArtifact . load (
713
- artifacts [ 0 ][ "ArtifactArn" ], sagemaker_session = sagemaker_session
714
- )
725
+ artifact_arn = artifacts [ 0 ][ "ArtifactArn" ]
726
+ logging . info ( f"Using static model artifact { artifact_arn } " )
727
+ yield artifact . ModelArtifact . load ( artifact_arn , sagemaker_session = sagemaker_session )
715
728
716
729
717
730
@pytest .fixture
718
731
def static_dataset_artifact (static_model_artifact , sagemaker_session ):
732
+ model_artifact_arn = static_model_artifact .artifact_arn
719
733
dataset_associations = sagemaker_session .sagemaker_client .list_associations (
720
- DestinationArn = static_model_artifact .artifact_arn , SourceType = "DataSet"
734
+ DestinationArn = model_artifact_arn , SourceType = "DataSet"
735
+ )
736
+ logging .info (
737
+ f"Found { len (dataset_associations )} associated with model artifact { model_artifact_arn } "
721
738
)
722
739
if len (dataset_associations ["AssociationSummaries" ]) == 0 :
723
740
# no directly associated dataset. work backwards from the model
724
741
model_associations = sagemaker_session .sagemaker_client .list_associations (
725
- DestinationArn = static_model_artifact .artifact_arn , SourceType = "Model"
726
- )
742
+ DestinationArn = model_artifact_arn , SourceType = "Model"
743
+ )["AssociationSummaries" ]
744
+
745
+ if len (model_associations ) == 0 :
746
+ raise Exception (f"No models associated with model artifact { model_artifact_arn } " )
747
+
727
748
training_job_associations = sagemaker_session .sagemaker_client .list_associations (
728
- DestinationArn = model_associations ["AssociationSummaries" ][ 0 ]["SourceArn" ],
749
+ DestinationArn = model_associations [0 ]["SourceArn" ],
729
750
SourceType = "SageMakerTrainingJob" ,
730
- )
751
+ )["AssociationSummaries" ]
752
+
753
+ if len (training_job_associations ) == 0 :
754
+ raise Exception (
755
+ f"No training jobs associated with models for model artifact { model_artifact_arn } "
756
+ )
757
+
731
758
dataset_associations = sagemaker_session .sagemaker_client .list_associations (
732
- DestinationArn = training_job_associations ["AssociationSummaries" ][ 0 ]["SourceArn" ],
759
+ DestinationArn = training_job_associations [0 ]["SourceArn" ],
733
760
SourceType = "DataSet" ,
734
761
)
735
762
0 commit comments