TigerZF
🌐Español

64.9. Zend_Service_Amazon_Ec2: Amazon Machine Images (AMI)

Las Amazon Machine Images (AMIs) vienen preconfiguradas con una lista cada vez mayor de sistemas operativos.

64.9.1. Utilidades de información de AMI

Ejemplo 64.30. Registrar una AMI con EC2

register Cada AMI está asociada a un ID único proporcionado por el servicio Amazon EC2 mediante la operación RegisterImage. Durante el registro, Amazon EC2 recupera el manifiesto de imagen especificado desde Amazon S3 y verifica que la imagen pertenezca al usuario que la registra.

register devuelve el imageId de la imagen registrada.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
$ip = $ec2_img->register('imageLocation');

Ejemplo 64.31. Anular el registro de una AMI con EC2

deregister, anula el registro de una AMI. Una vez anulado el registro, ya no se pueden lanzar instancias de la AMI.

deregister devuelve un valor booleano TRUE o FALSE.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
$ip = $ec2_img->deregister('imageId');

Ejemplo 64.32. Describir una AMI

describe Devuelve información sobre AMIs, AKIs y ARIs disponibles para el usuario. La información devuelta incluye el tipo de imagen, códigos de producto, arquitectura, y los IDs del kernel y del disco RAM. Las imágenes disponibles para el usuario incluyen imágenes públicas que cualquier usuario puede lanzar, imágenes privadas propiedad del usuario que hace la solicitud, e imágenes privadas propiedad de otros usuarios para las que el usuario tiene permisos de lanzamiento explícitos.

Tabla 64.12. Los permisos de lanzamiento se dividen en tres categorías

Nombre Descripción
public

El propietario de la AMI concedió permisos de lanzamiento de la AMI al grupo all. Todos los usuarios tienen permisos de lanzamiento para estas AMIs.

explicit

El propietario de la AMI concedió permisos de lanzamiento a un usuario específico.

implicit

Un usuario tiene permisos de lanzamiento implícitos para todas las AMIs que posee.


La lista de AMIs devuelta se puede modificar especificando IDs de AMI, propietarios de AMI, o usuarios con permisos de lanzamiento. Si no se especifican opciones, Amazon EC2 devuelve todas las AMIs para las que el usuario tiene permisos de lanzamiento.

Si especifica uno o más IDs de AMI, solo se devuelven las AMIs que tienen los IDs especificados. Si especifica un ID de AMI no válido, se devuelve un error. Si especifica un ID de AMI al que no tiene acceso, no se incluirá en los resultados devueltos.

Si especifica uno o más propietarios de AMI, solo se devuelven las AMIs de los propietarios especificados y a las que tiene acceso. Los resultados pueden incluir los IDs de cuenta de los propietarios especificados, amazon para AMIs propiedad de Amazon o self para AMIs que usted posee.

Si especifica una lista de usuarios ejecutables, solo se devuelven los usuarios que tienen permisos de lanzamiento para las AMIs. Puede especificar IDs de cuenta (si posee las AMI(s)), self para AMIs para las que tiene permisos propios o explícitos, o all para AMIs públicas.

describe devuelve un array con todas las imágenes que coinciden con los criterios que se pasaron. El array contiene imageId, imageLocation, imageState, imageOwnerId, isPublic, architecture, imageType, kernelId, ramdiskId y platform.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
$ip = $ec2_img->describe();

64.9.2. Utilidades de atributos de AMI

Ejemplo 64.33. Modificar atributos de imagen

Modifica un atributo de una AMI

Tabla 64.13. Atributos válidos

Nombre Descripción
launchPermission

Controla quién tiene permiso para lanzar la AMI. Los permisos de lanzamiento se pueden conceder a usuarios específicos añadiendo userIds.

Para hacer pública la AMI, añada el grupo all.

productCodes

Asocia un código de producto con las AMIs. Esto permite a los desarrolladores cobrar a los usuarios por el uso de las AMIs. El usuario debe estar registrado para el producto antes de poder lanzar la AMI. Este es un atributo de escritura única; una vez establecido, no se puede cambiar ni eliminar.


modifyAttribute devuelve un valor booleano TRUE o FALSE.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
// modify the launchPermission of an AMI
$return = $ec2_img->modifyAttribute('imageId',
                                    'launchPermission',
                                    'add',
                                    'userId',
                                    'userGroup');

// set the product code of the AMI.
$return = $ec2_img->modifyAttribute('imageId',
                                    'productCodes',
                                    'add',
                                    null,
                                    null,
                                    'productCode');

Ejemplo 64.34. Restablecer un atributo de AMI

resetAttribute restablecerá el atributo de una AMI a su valor predeterminado. El atributo productCodes no se puede restablecer.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
$return = $ec2_img->resetAttribute('imageId', 'launchPermission');

Ejemplo 64.35. Describir atributo de AMI

describeAttribute devuelve información sobre un atributo de una AMI. Solo se puede especificar un atributo por llamada. Actualmente solo se admiten launchPermission y productCodes.

describeAttribute devuelve un array con el valor del atributo que se solicitó.

$ec2_img = new Zend_Service_Amazon_Ec2_Image('aws_key','aws_secret_key');
$return = $ec2_img->describeAttribute('imageId', 'launchPermission');