19
19
20
20
from sagemaker import Model , PipelineModel
21
21
from sagemaker .automl .candidate_estimator import CandidateEstimator
22
- from sagemaker .config .config_schema import (
22
+ from sagemaker .job import _Job
23
+ from sagemaker .session import (
24
+ Session ,
25
+ AUTO_ML_KMS_KEY_ID_PATH ,
26
+ AUTO_ML_ROLE_ARN_PATH ,
27
+ AUTO_ML_VPC_CONFIG_PATH ,
28
+ AUTO_ML_VOLUME_KMS_KEY_ID_PATH ,
23
29
PATH_V1_AUTO_ML_INTER_CONTAINER_ENCRYPTION ,
24
30
)
25
- from sagemaker .job import _Job
26
- from sagemaker .session import Session
27
31
from sagemaker .utils import name_from_base
28
32
from sagemaker .workflow .entities import PipelineVariable
29
33
from sagemaker .workflow .pipeline_context import runnable_by_pipeline
@@ -101,8 +105,8 @@ class AutoML(object):
101
105
102
106
def __init__ (
103
107
self ,
104
- role : str ,
105
- target_attribute_name : str ,
108
+ role : Optional [ str ] = None ,
109
+ target_attribute_name : str = None ,
106
110
output_kms_key : Optional [str ] = None ,
107
111
output_path : Optional [str ] = None ,
108
112
base_job_name : Optional [str ] = None ,
@@ -179,13 +183,10 @@ def __init__(
179
183
Returns:
180
184
AutoML object.
181
185
"""
182
- self .role = role
183
- self .output_kms_key = output_kms_key
184
186
self .output_path = output_path
185
187
self .base_job_name = base_job_name
186
188
self .compression_type = compression_type
187
- self .volume_kms_key = volume_kms_key
188
- self .vpc_config = vpc_config
189
+ self .encrypt_inter_container_traffic = encrypt_inter_container_traffic
189
190
self .problem_type = problem_type
190
191
self .max_candidate = max_candidates
191
192
self .max_runtime_per_training_job_in_seconds = max_runtime_per_training_job_in_seconds
@@ -206,6 +207,24 @@ def __init__(
206
207
self ._auto_ml_job_desc = None
207
208
self ._best_candidate = None
208
209
self .sagemaker_session = sagemaker_session or Session ()
210
+ self .vpc_config = self .sagemaker_session .get_sagemaker_config_override (
211
+ AUTO_ML_VPC_CONFIG_PATH , default_value = vpc_config
212
+ )
213
+ self .volume_kms_key = self .sagemaker_session .get_sagemaker_config_override (
214
+ AUTO_ML_VOLUME_KMS_KEY_ID_PATH , default_value = volume_kms_key
215
+ )
216
+ self .output_kms_key = self .sagemaker_session .get_sagemaker_config_override (
217
+ AUTO_ML_KMS_KEY_ID_PATH , default_value = output_kms_key
218
+ )
219
+ self .role = self .sagemaker_session .get_sagemaker_config_override (
220
+ AUTO_ML_ROLE_ARN_PATH , default_value = role
221
+ )
222
+ if not self .role :
223
+ # Originally IAM role was a required parameter.
224
+ # Now we marked that as Optional because we can fetch it from SageMakerConfig
225
+ # Because of marking that parameter as optional, we should validate if it is None, even
226
+ # after fetching the config.
227
+ raise ValueError ("IAM role should be provided for creating AutoML jobs." )
209
228
210
229
self .encrypt_inter_container_traffic = self .sagemaker_session .resolve_value_from_config (
211
230
direct_input = encrypt_inter_container_traffic ,
0 commit comments