2016-03-01 6 views
10

Я пытаюсь создать экземпляр спота с помощью boto3. Хотя я следую за API documentation, я получаю исключение, которое я не смог бы понять. Код я использую:boto3: Создание экземпляра спота

import boto3 
import datetime 
client = boto3.client('ec2') 
response = client.request_spot_instances(
    DryRun=False, 
    SpotPrice='0.10', 
    ClientToken='string', 
    InstanceCount=1, 
    Type='one-time', 
    LaunchSpecification={ 
     'ImageId': 'ami-fce3c696', 
     'KeyName': 'awskey.pem', 
     'SecurityGroups': ['sg-709f8709'], 
     'InstanceType': 'm4.large', 
     'Placement': { 
      'AvailabilityZone': 'us-east-1a', 
     }, 
     'BlockDeviceMappings': [ 
      { 
       'Ebs': { 
        'SnapshotId': 'snap-f70deff0', 
        'VolumeSize': 100, 
        'DeleteOnTermination': True, 
        'VolumeType': 'gp2', 
        'Iops': 300, 
        'Encrypted': False 
       }, 
      }, 
     ], 

     'EbsOptimized': True, 
     'Monitoring': { 
      'Enabled': True 
     }, 
     'SecurityGroupIds': [ 
      'sg-709f8709', 
     ] 
    } 
) 

И я получаю следующее исключение:

botocore.exceptions.ClientError: An error occurred (InvalidParameterValue) when calling the RequestSpotInstances operation: Value() for parameter groupId is invalid. The value cannot be empty 

Дело в том, что нет идентификатор_группы параметр в запросе в API documentation.

Я что-то упустил?

ответ

16

Хотя это не указано в документации API, для параметра «SecurityGroups», по-видимому, требуются имена групп безопасности, а не идентификаторы.

Изменение названия группы решило проблему.

Спасибо всем, кто позаботился, чтобы прочитать вопрос в первую очередь.

+5

Это просто спасло меня. – Brett

Смежные вопросы