boto3 emr客户端run_job_flow想要InstanceProfile属性

时间:2016-12-19 21:25:04

标签: boto3

我正在尝试使用boto3来启动这样的EMR集群:

client = boto3.client('emr')
client.run_job_flow(**kwargs)

我收到此错误:

ClientError: An error occurred (ValidationException) when calling the
RunJobFlow operation: InstanceProfile is required for creating cluster.

(这是关于Python 3.5的boto3版本1.4.2。)

http://boto3.readthedocs.io/en/latest/reference/services/emr.html?highlight=emr#EMR.Client.run_job_flow没有提及InstanceProfile属性。

我已经尝试过我的(工作)aws cli脚本中的参数:

    --ec2-attributes '{"KeyName":"MyKeyPair",
                    "InstanceProfile":"EMR_EC2_DefaultRole",
                    "AvailabilityZone":"us-east-1c",
                    "EmrManagedSlaveSecurityGroup":"sg-7c753416",
                    "EmrManagedMasterSecurityGroup":"sg-7e753414"}'

....在kwargs的不同地方添加了arg,但没有运气。

任何人都可以给我一个提示或展示一个有效的例子吗?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:4)

再试一次,它有效!

JobFlowRole='EMR_EC2_DefaultRole'

这是client.run_job_flow()的参数,或** kwargs中的顶级键。

以下是向我展示如何操作的示例:

http://tech.adroll.com/blog/spark/2016/01/25/spark-on-emr.html

HTH别人。