Al crear una imagen (AMI) en AWS con boto3 lib, proporciona los siguientes parámetros:
ec2.create_image(Name=name, BlockDeviceMappings=[{'DeviceName':device_name,'Ebs':{'SnapshotId':snapshot_id, 'DeleteOnTermination': delete_on_term,
'VolumeSize':10, 'VolumeType':'gp2'}}])
Recibo este error: Missing required parameter in input: "InstanceId"
Pero cuando creo una imagen desde la interfaz de usuario, no se requiere una identificación de instancia.
En la imagen a continuación, puede ver que puedo crear la imagen desde la página 'Instantáneas', sin especificar el Id. De instancia.
¿Alguien sabe de una solución? Gracias.
3 respuestas
Use esta función register_image para crear imágenes a partir de instantáneas
response = client.register_image(
ImageLocation='string',
Architecture='i386'|'x86_64'|'arm64',
BlockDeviceMappings=[
{
'DeviceName': 'string',
'VirtualName': 'string',
'Ebs': {
'DeleteOnTermination': True|False,
'Iops': 123,
'SnapshotId': 'string',
'VolumeSize': 123,
'VolumeType': 'standard'|'io1'|'gp2'|'sc1'|'st1',
'Encrypted': True|False,
'KmsKeyId': 'string'
},
'NoDevice': 'string'
},
],
Description='string',
DryRun=True|False,
EnaSupport=True|False,
KernelId='string',
Name='string',
BillingProducts=[
'string',
],
RamdiskId='string',
RootDeviceName='string',
SriovNetSupport='string',
VirtualizationType='string'
)
Cuando crea una imagen desde la consola, selecciona seleccionar la instancia y selecciona la opción crear imagen. Por lo tanto, la consola utiliza la identificación de instancia seleccionada para pasarla al crear la imagen.
Cuando necesite crear una imagen usando boto3, debe indicarle a la API para qué instancia está creando la imagen, por lo tanto, debe pasar los parámetros. Prueba esto
ec2.create_image(instance_id=yourInstanceId, Name=name, BlockDeviceMappings=[{'DeviceName':device_name,'Ebs':{'SnapshotId':snapshot_id, 'DeleteOnTermination': delete_on_term,
'VolumeSize':10, 'VolumeType':'gp2'}}])
De la documentación oficial aquí: https: // boto3. amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.create_image
Se requiere "InstanceId": debe contener el ID de instancia desde el que está intentando crear la imagen.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.