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.