boto3 EMR Serverless API中executionRoleArn的含义及配置疑问
EMR Serverless中executionRoleArn的说明
executionRoleArn是EMR Serverless服务执行作业时使用的IAM角色的亚马逊资源名称(ARN),而非单纯的角色名称。
核心作用
EMR Serverless会以这个角色的身份,完成作业运行过程中对AWS资源的访问操作——比如读取S3中的输入数据、写入输出结果、调用Glue元数据服务、推送日志到CloudWatch等,所有作业依赖的资源访问权限都需要通过这个角色配置。
为什么角色名称不生效?
AWS API要求传入的是全局唯一的ARN,而非角色名称。ARN的标准格式为:arn:aws:iam::你的AWS账号ID:role/角色名称
获取ARN的方式
- 在IAM控制台找到你创建的运行时角色,进入角色详情页的「摘要」区域,直接复制ARN。
- 用AWS CLI命令快速获取:
aws iam get-role --role-name 你的角色名称 --query 'Role.Arn' --output text
正确的boto3调用示例
import boto3 emr_serverless = boto3.client('emr-serverless') response = emr_serverless.start_job_run( applicationId='your-application-id', executionRoleArn='arn:aws:iam::123456789012:role/your-execution-role', jobDriver={ "sparkSubmit": { "entryPoint": "s3://your-bucket/path/to/job.py", "entryPointArguments": ["arg1", "arg2"] } } )
内容的提问来源于stack exchange,提问作者nirkov
相关产品推荐
相关产品推荐

