0 votes
1 view
in AWS by (18.2k points)

I'm trying to create a spot instance using boto3. Although I follow the API documentation, I receive an exception I couldn't be able to figure out. The code I'm using is:

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',

        ]

    }

)

And I receive the following exception:

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

Am I missing something?

1 Answer

0 votes
by (42.5k points)

Changing the group name instead of the IDs in "SecurityGroups" solved it for me. It is not mentioned in the Documentation.

Related questions

0 votes
1 answer
0 votes
1 answer
Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...