从 boto3 执行 start_medical_scribe_job 时,无法访问指定的 S3 存储桶错误。我的角色有管理员权限

问题描述 投票:0回答:1

完整错误为 **botocore.errorfactory.BadRequestException:调用 StartMedicalScribeJob 操作时发生错误 (BadRequestException):无法访问指定的 S3 存储桶。确保您拥有存储桶的写入权限,然后重试您的请求。 **

我的代码是

from __future__ import print_function
import time
import boto3

> transcribe = boto3.client( 'transcribe','us-east-1',aws_access_key_id="myAccessKey",aws_secret_access_key='mySecretAccessKey')

job_name = "my-first-medical-scribe-job"

job_uri="s3://myBucket/myFile"
//File name has spaces in it

response=transcribe.start_medical_scribe_job(
    MedicalScribeJobName =job_name,
    Media={
        'MediaFileUri': job_uri
    },
    OutputBucketName='same as above bucket',

    DataAccessRoleArn='arn:aws:iam::ID:role/myRole',
    Settings={
        'ShowSpeakerLabels': True,
"MaxSpeakerLabels":2
    },

)


我的角色具有管理员访问权限。我可以使用;

将文件上传到此存储桶上
import boto3

s3 = boto3.resource('s3', 'us-east-1',aws_access_key_id="myAccessKey",aws_secret_access_key='mySecretAccessKey')

s3.meta.client.upload_file('LocalFile', 'myBucket','myFile')

文档表明 start_medical_scribe_job 在美国东部(弗吉尼亚北部)地区有效。我也在同一区域创建了存储桶。

python amazon-s3 boto3
1个回答
0
投票

您遇到的错误表明对指定 S3 存储桶的权限或访问存在问题。您可以采取以下几个步骤来排查和解决问题:

检查S3存储桶权限: 确保您使用的 IAM 角色 (arn:aws:iam::ID:role/myRole) 具有访问 S3 存储桶所需的权限。该角色应该对指定的存储桶具有读写权限。

验证正确的区域: 确认 S3 存储桶和转录客户端均位于正确的 AWS 区域(本例中为 us-east-1)。确保区域名称没有拼写错误或差异。

使用正确的 AWS 凭证: 仔细检查您在 Transcribe 客户端中使用的 AWS 凭证(aws_access_key_id 和 aws_secret_access_key)。确保这些凭据具有转录和 S3 所需的权限。

存储桶命名和权限: 确认存储桶名称正确并遵循 S3 存储桶命名约定。此外,请确保存储桶策略允许 IAM 角色执行必要的操作。

存储桶路径和文件名: 确保您指定的文件路径和名称 (s3://myBucket/myFile) 正确。如果文件名包含空格,您可能需要对它们进行 URL 编码(每个空格为 %20)。

使用 AWS CLI 进行调试: 使用 AWS CLI 检查您是否可以手动启动医疗抄写员作业。这有助于隔离您的代码和 AWS Transcribe 服务之间的问题。

aws transcribe start-medical-scribe-job --region us-east-1 --cli-input-json file://input.json

将您的转录作业配置保存在 JSON 文件 (input.json) 中,并将其与 AWS CLI 命令结合使用。

检查其他错误详细信息: 如果问题仍然存在,请检查 start_medical_scribe_job API 调用的响应中是否有任何其他错误详细信息。这可能会提供有关特定问题的更多信息。

日志记录和 CloudWatch: 为 AWS Transcribe 启用 AWS CloudWatch 日志记录。这可以帮助您收集有关作业执行期间可能出现问题的更多信息。

通过仔细检查这些方面,您应该能够识别并解决 AWS Transcribe 作业中的 S3 存储桶访问问题。

© www.soinside.com 2019 - 2024. All rights reserved.