本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用管理 Amazon EC2 实例Amazon SDK for PHP版本 3
以下示例演示如何:
-
使用描述 Amazon EC2 实例DescribeInstances.
-
使用 MonitorInstances 为正在运行的实例启用详细监控。
-
使用 UnmonitorInstances 为正在运行的实例禁用监控。
-
使用启动之前停止的由 Amazon EBS 支持的 AMIStartInstances.
-
使用停止 Amazon EBS 支持的实例StopInstances.
-
使用 RebootInstances 请求重新启动一个或多个实例。
Amazon SDK for PHPGitHub 上提供了
凭证
运行示例代码之前,请配置Amazon凭证,如所述设置 凭证. 然后导入Amazon SDK for PHP,如所述基本用法.
描述实例
导入
require 'vendor/autoload.php'; use Aws\Ec2\Ec2Client;
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $result = $ec2Client->describeInstances(); echo "Instances: \n"; foreach ($result['Reservations'] as $reservation) { foreach ($reservation['Instances'] as $instance) { echo "InstanceId: {$instance['InstanceId']} - {$instance['State']['Name']} \n"; } }
启用和禁用监控
导入
require 'vendor/autoload.php'; use Aws\Ec2\Ec2Client;
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $instanceIds = array('InstanceID1', 'InstanceID2'); $monitorInstance = 'ON'; if ($monitorInstance == 'ON') { $result = $ec2Client->monitorInstances(array( 'InstanceIds' => $instanceIds )); } else { $result = $ec2Client->unmonitorInstances(array( 'InstanceIds' => $instanceIds )); } var_dump($result);
启动和停止实例
导入
require 'vendor/autoload.php'; use Aws\Ec2\Ec2Client;
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $action = 'START'; $instanceIds = array('InstanceID1', 'InstanceID2'); if ($action == 'START') { $result = $ec2Client->startInstances(array( 'InstanceIds' => $instanceIds, )); } else { $result = $ec2Client->stopInstances(array( 'InstanceIds' => $instanceIds, )); } var_dump($result);
重启实例
导入
require 'vendor/autoload.php'; use Aws\Ec2\Ec2Client;
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $instanceIds = array('InstanceID1', 'InstanceID2'); $result = $ec2Client->rebootInstances(array( 'InstanceIds' => $instanceIds )); var_dump($result);