首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于电子病历的Boto3 API不支持“OnDemandPrice”

用于电子病历的Boto3 API不支持“OnDemandPrice”
EN

Stack Overflow用户
提问于 2021-09-15 03:21:57
回答 1查看 276关注 0票数 0

在使用Boto3创建EMR集群时遇到了一些问题。我得到的错误如下:

代码语言:javascript
复制
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the RunJobFlow operation: Attempted to set bid price for on demand instance group.

我将此配置指定如下:

代码语言:javascript
复制
 'Name': 'Core - 2',
 'InstanceRole': 'CORE',
 'InstanceType': 'i3.2xlarge',
 'InstanceCount': 50,
 'BidPrice': 'OnDemandPrice',

Boto3 API似乎不允许这样做,我也不想使用AWS。是否有办法通过Boto3指定spot实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 23:05:00

关于这一点,在boto3回购中还有一个悬而未决的问题。目前,如果您指定"Market": "SPOT"BidPriceAsPercentageOfOnDemandPrice将默认为100%,也就是按需价格。

下面是一个使用boto3==1.18.42的示例。

代码语言:javascript
复制
import boto3

client = boto3.client("emr", region_name="us-east-1")

response = client.run_job_flow(
    Name="Boto3 test cluster",
    ReleaseLabel="emr-5.33.0",
    Instances={
        "KeepJobFlowAliveWhenNoSteps": True,
        "TerminationProtected": False,
        "InstanceGroups": [
            {
                "InstanceRole": "MASTER",
                "InstanceCount": 1,
                "InstanceType": "i3.2xlarge",
                "Name": "Master",
            },
            {
                "InstanceRole": "CORE",
                "InstanceCount": 2,
                "InstanceType": "i3.2xlarge",
                "Name": "Core",
                "Market": "SPOT",
            },
        ],
    },
    VisibleToAllUsers=True,
    JobFlowRole="EMR_EC2_DefaultRole",
    ServiceRole="EMR_DefaultRole",
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69186734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档