Zend_Cloud_Infrastructure soporta los siguientes adaptadores:
Para inicializar el adaptador de AMAZON EC2 debe usar el siguiente código:
$key = 'key';
$secret = 'secret';
$region = 'region';
$infrastructure = Zend_Cloud_Infrastructure_Factory::getAdapter(array(
Zend_Cloud_Infrastructure_Factory::INFRASTRUCTURE_ADAPTER_KEY => 'Zend_Cloud_Infrastructure_Adapter_Ec2',
Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_ACCESS_KEY => $key,
Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_SECRET_KEY => $secret,
Zend_Cloud_Infrastructure_Adapter_Ec2::AWS_REGION => $region,
));
Para crear una nueva instancia con el adaptador de AMAZON EC2 debe usar los siguientes parámetros:
$param = array (
'imageId' => 'your-image-id',
'instanceType' => 'your-instance-type',
);
$instance = $infrastructure->createInstance('name of the instance', $param);
printf("Name of the instance: %s\n", $instance->getName());
printf("ID of the instance : %s\n", $instance->getId());
Para monitorizar una instancia de AMAZON EC2 puede usar los parámetros opcionales de hora de inicio y hora de fin. Las horas deben especificarse usando el formato ISO 8601.
$options= array (
Instance::MONITOR_START_TIME => '2008-02-26T19:00:00+00:00',
Instance::MONITOR_END_TIME => '2008-02-26T20:00:00+00:00',
);
$cpuUsage= $infrastructure->monitorInstance('id-instance', Zend_Cloud_Infrastructure_Instance::MONITOR_CPU, $options);
print_r($cpuUsage);
El parámetro instanceType es opcional. Este parámetro especifica el tipo de instancia a crear (por ejemplo, 't1.micro').
Para inicializar el adaptador de Rackspace Cloud Servers debe usar el siguiente código:
$user = 'username';
$key = 'API key';
$infrastructure = Zend_Cloud_Infrastructure_Factory::getAdapter(array(
Zend_Cloud_Infrastructure_Factory::INFRASTRUCTURE_ADAPTER_KEY => 'Zend_Cloud_Infrastructure_Adapter_Rackspace',
Zend_Cloud_Infrastructure_Adapter_Rackspace::RACKSPACE_USER => $user,
Zend_Cloud_Infrastructure_Adapter_Rackspace::RACKSPACE_KEY => $key,
));
Para crear una nueva instancia con el adaptador de Rackspace Cloud Servers debe usar los siguientes parámetros:
$param = array (
'imageId' => 'image-id-of-the-instance',
'flavorId' => 'flavor-id-of-the-instance',
'metadata' => array (
'foo' => 'bar',
),
'file' => array (
'remote-instance-path' => 'local-path',
),
);
$instance = $infrastructure->createInstance('name of the instance', $param);
printf("Name of the instance: %s\n", $instance->getName());
printf("ID of the instance : %s\n", $instance->getId());
El array metadata y el array file son parámetros opcionales.
Para monitorizar una instancia de Rackspace Cloud Servers solo podemos usar la extensión SSH2. La API de Rackspace no ofrece un servicio dedicado para monitorizar la instancia. Las funciones de monitorización mediante la conexión SSH2 se limitan al uso de CPU, al uso de RAM y al uso de disco.
$options = array (
'username' => 'your-username',
'password' => 'your-password',
);
$cpuUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_CPU, $options);
$ramUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_RAM, $options);
$diskUsage = $infrastructure->monitorInstance('id-instance', Instance::MONITOR_DISK, $options);
print_r($cpuUsage);
print_r($ramUsage);
print_r($diskUsage);
$options contiene el nombre de usuario y la contraseña que se usarán para la conexión SSH.