Средство Deepracer log_analysis - ошибки роли sagemaker - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь запустить инструмент анализа журналов Deepracer из https://github.com/aws-samples/aws-deepracer-workshops/blob/master/log-analysis/DeepRacer%20Log%20Analysis.ipynb на моем локальном ноутбуке. Однако я получаю ниже ошибку при попытке запустить шаг [5] «Создать роль IAM».

try:
    sagemaker_role = sagemaker.get_execution_role()
except:
    sagemaker_role = get_execution_role('sagemaker')

print("Using Sagemaker IAM role arn: \n{}".format(sagemaker_role))

Couldn't call 'get_role' to get Role ARN from role name arn:aws:iam::26********:root to get Role path.
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-3bea8175b8c7> in <module>
      1 try:
----> 2     sagemaker_role = sagemaker.get_execution_role()
      3 except:

/opt/conda/lib/python3.7/site-packages/sagemaker/session.py in get_execution_role(sagemaker_session)
   3302     )
-> 3303     raise ValueError(message.format(arn))
   3304 

ValueError: The current AWS identity is not a role: arn:aws:iam::26********:root, therefore it cannot be used as a SageMaker execution role

During handling of the above exception, another exception occurred:

NameError                                 Traceback (most recent call last)
<ipython-input-5-3bea8175b8c7> in <module>
      2     sagemaker_role = sagemaker.get_execution_role()
      3 except:
----> 4     sagemaker_role = get_execution_role('sagemaker')
      5 
      6 print("Using Sagemaker IAM role arn: \n{}".format(sagemaker_role))

NameError: name 'get_execution_role' is not defined

Кто-нибудь знает, что нужно сделать, чтобы выполнить приведенный выше код без ошибок?

1 Ответ

1 голос
/ 01 апреля 2020

AWS поддержка рекомендуется ниже решения:

Кажется, это известная проблема при локальном выполнении кода, как упомянуто в следующей проблеме Github [3]. Обходной путь для решения проблемы также определен в этой проблеме [3], и к нему можно обратиться по следующей ссылке: aws / sagemaker- python -sdk # 300 (комментарий)

Шаги в Обходной путь, указанный в приведенной выше ссылке:

  1. Вход в консоль AWS -> IAM -> Роли -> Создать роль

  2. Создание роли IAM и выбор службы «SageMaker»

  3. Предоставление роли «AmazonSageMakerFullAccess» разрешения

  4. Просмотр и создание роли

  5. Затем также присоедините политику разрешений «AWSRoboMakerFullAccess» к созданной выше роли (как требуется в записной книжке Github [1]).

  6. Затем необходимо изменить исходный код, чтобы получать роль IAM непосредственно при выполнении кода на локальном компьютере. Используемый фрагмент кода приведен ниже:

try:
   sagemaker_role = sagemaker.get_execution_role()
 except ValueError:
   iam = boto3.client('iam')
   sagemaker_role = iam.get_role(RoleName='<sagemaker-IAM-role-name>')['Role']['Arn']

В приведенном выше фрагменте замените текст "" именем роли IAM, созданным на шаге 4.

Ссылки:

[1] https://github.com/aws-samples/aws-deepracer-workshops/blob/master/log-analysis/DeepRacer%20Log%20Analysis.ipynb

[2] https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-ex-role.html

[3] AWS / sagemaker- python -sdk # 300

...