У меня вопрос относительно параметра DataAccessRoleArn в функции boto3 start_transcription_job
Вот мой код ниже:
transcribe.start_transcription_job(TranscriptionJobName=transcriptname,
Media = {"MediaFileUri": s3_url},
MediaFormat = file_type,
OutputBucketName = outputbucket,
Settings={
'ShowSpeakerLabels':True,
'MaxSpeakerLabels':2
},
JobExecutionSettings ={
'AllowDeferredExecution':True,
'DataAccessRoleArn':'arn:aws:iam::358110801253:role/service-role/transcribe-role-k5easa7b'
},
LanguageCode = language)
Если я закомментирую часть JobExecutionSettings, она работает отлично. Но я хочу включить AllowDeferredExecution, чтобы назначить DataAccessRoleArn. Роль, которую я здесь назначаю, имеет полный доступ к лямбда и S3, но я все еще получаю сообщение об ошибке, как показано ниже:
[ERROR] ClientError: An error occurred (AccessDeniedException) when calling the StartTranscriptionJob operation: User: arn:aws:sts::358110801253:assumed-role/transcribe-role-k5easa7b/transcribe is not authorized to perform: iam:PassRole on resource: arn:aws:iam::358110801253:role/service-role/transcribe-role-k5easa7b
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 43, in lambda_handler
transcribe.start_transcription_job(TranscriptionJobName=transcriptname,
File "/var/runtime/botocore/client.py", line 316, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/var/runtime/botocore/client.py", line 626, in _make_api_call
raise error_class(parsed_response, operation_name)END RequestId: 88e3bb78-60c1-42e5-a2e1-717918b6f7b9