python amazon-web-services amazon-ec2 boto boto3

python - boto3: creación de instancias puntuales



amazon-web-services amazon-ec2 (1)

Estoy tratando de crear una instancia de spot usando boto3. Aunque sigo la documentación de la API , recibo una excepción que no pude averiguar. El código que estoy usando es:

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'', ] } )

Y recibo la siguiente excepción:

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

La cosa es que no hay ningún parámetro groupId en la solicitud en la documentación de la API .

¿Me estoy perdiendo de algo?


Aunque no está especificado en la documentación de la API, aparentemente el parámetro ''SecurityGroups'' requiere los nombres de los grupos de seguridad, no los ID.

El cambio al nombre del grupo solucionó el problema.

Gracias a todos los que se molestaron en leer la pregunta en primer lugar.