3838 JumpStartVersionedModelId ,
3939)
4040from sagemaker .session import Session
41+ from sagemaker .config import load_sagemaker_config
4142from sagemaker .utils import resolve_value_from_config
4243from sagemaker .workflow import is_pipeline_variable
4344
@@ -455,6 +456,9 @@ def resolve_model_intelligent_default_field(
455456 over intelligent defaults. For all other fields, intelligent defaults takes precedence
456457 over the JumpStart default fields.
457458 """
459+ # In case, sagemaker_session is None, get sagemaker_config from load_sagemaker_config()
460+ # to resolve value from config for the respective field_name parameter
461+ _sagemaker_config = load_sagemaker_config () if (sagemaker_session is None ) else None
458462
459463 # We allow customers to define a role which takes precedence
460464 # over intelligent defaults
@@ -464,6 +468,7 @@ def resolve_model_intelligent_default_field(
464468 config_path = MODEL_EXECUTION_ROLE_ARN_PATH ,
465469 default_value = default_value or sagemaker_session .get_caller_identity_arn (),
466470 sagemaker_session = sagemaker_session ,
471+ sagemaker_config = _sagemaker_config ,
467472 )
468473
469474 # JumpStart Models have certain default field values. We want
@@ -474,6 +479,7 @@ def resolve_model_intelligent_default_field(
474479 config_path = MODEL_ENABLE_NETWORK_ISOLATION_PATH ,
475480 sagemaker_session = sagemaker_session ,
476481 default_value = default_value ,
482+ sagemaker_config = _sagemaker_config ,
477483 )
478484 return resolved_val if resolved_val is not None else field_val
479485
@@ -494,6 +500,11 @@ def resolve_estimator_intelligent_default_field(
494500 over the JumpStart default fields.
495501 """
496502
503+ # Workaround for config injection if sagemaker_session is None, since in
504+ # that case sagemaker_session will not be initialized until
505+ # `_init_sagemaker_session_if_does_not_exist` is called later
506+ _sagemaker_config = load_sagemaker_config () if (sagemaker_session is None ) else None
507+
497508 # We allow customers to define a role which takes precedence
498509 # over intelligent defaults
499510 if field_name == "role" :
@@ -502,6 +513,7 @@ def resolve_estimator_intelligent_default_field(
502513 config_path = TRAINING_JOB_ROLE_ARN_PATH ,
503514 default_value = default_value or sagemaker_session .get_caller_identity_arn (),
504515 sagemaker_session = sagemaker_session ,
516+ sagemaker_config = _sagemaker_config ,
505517 )
506518
507519 # JumpStart Estimators have certain default field values. We want
@@ -513,6 +525,7 @@ def resolve_estimator_intelligent_default_field(
513525 config_path = TRAINING_JOB_ENABLE_NETWORK_ISOLATION_PATH ,
514526 sagemaker_session = sagemaker_session ,
515527 default_value = default_value ,
528+ sagemaker_config = _sagemaker_config ,
516529 )
517530 return resolved_val if resolved_val is not None else field_val
518531
@@ -523,6 +536,7 @@ def resolve_estimator_intelligent_default_field(
523536 config_path = TRAINING_JOB_INTER_CONTAINER_ENCRYPTION_PATH ,
524537 sagemaker_session = sagemaker_session ,
525538 default_value = default_value ,
539+ sagemaker_config = _sagemaker_config ,
526540 )
527541 return resolved_val if resolved_val is not None else field_val
528542
0 commit comments