@@ -49,6 +49,10 @@ class BaseEvaluator(BaseModel):
4949 Attributes:
5050 region (Optional[str]): AWS region for evaluation jobs. If not provided, will use
5151 SAGEMAKER_REGION env var or default region.
52+ role (Optional[str]): IAM execution role ARN for SageMaker pipeline and training jobs.
53+ If not provided, will be derived from the session's caller identity. Use this when
54+ running outside SageMaker-managed environments (e.g., local notebooks, CI/CD) where
55+ the caller identity is not a SageMaker-assumable role.
5256 sagemaker_session (Optional[Any]): SageMaker session object. If not provided, a default
5357 session will be created automatically.
5458 model (Union[str, Any]): Model for evaluation. Can be:
@@ -88,6 +92,7 @@ class BaseEvaluator(BaseModel):
8892 """
8993
9094 region : Optional [str ] = None
95+ role : Optional [str ] = None
9196 sagemaker_session : Optional [Any ] = None
9297 model : Union [str , BaseTrainer , ModelPackage ]
9398 base_eval_name : Optional [str ] = None
@@ -631,9 +636,12 @@ def _get_aws_execution_context(self) -> Dict[str, str]:
631636 - account_id (str): AWS account ID
632637 """
633638 # Get role ARN
634- role_arn = (self .sagemaker_session .get_caller_identity_arn ()
635- if hasattr (self .sagemaker_session , 'get_caller_identity_arn' )
636- else self .sagemaker_session .expand_role ())
639+ if self .role :
640+ role_arn = self .role
641+ else :
642+ role_arn = (self .sagemaker_session .get_caller_identity_arn ()
643+ if hasattr (self .sagemaker_session , 'get_caller_identity_arn' )
644+ else self .sagemaker_session .expand_role ())
637645
638646 # Get region - prefer self.region if set, otherwise extract from session
639647 region = self .region or (self .sagemaker_session .boto_region_name
0 commit comments