我在本地使用AWS SageMaker构建机器学习模型时,遇到了IAM角色名称的验证错误。尽管我在控制台上创建的角色名称完全正确。
这是我的代码
import boto3 import sagemaker from sagemaker import get_execution_role from sagemaker.amazon.amazon_estimator import image_uris from sagemaker.amazon.amazon_estimator import RecordSet sess = sagemaker.Session() bucket = sagemaker.Session().default_bucket() prefix = 'sagemaker/ccard19' role ='arn:aws:iam::94911111111542:role/SageMaker-Full-Access ' container = image_uris.retrieve('linear-learner',boto3.Session().region_name) # 其他一些代码 linear = sagemaker.LinearLearner(role=role, instance_count=1, instance_type='ml.m4.xlarge', predictor_type='binary_classifier') # 其他一些代码 ### 拟合分类器 linear.fit([train_records,val_records,test_records], wait=True, logs='All')
这是错误消息
ClientError: An error occurred (ValidationException) when calling the CreateTrainingJob operation: 1 validation error detected: Value 'arn:aws:iam::949010940542:role/SageMaker-Full-Access ' at 'roleArn' failed to satisfy constraint: Member must satisfy regular expression pattern: ^arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$
请问有什么帮助吗?
回答:
你的角色名称中包含空格。它应该是:
role ='arn:aws:iam::94911111111542:role/SageMaker-Full-Access'