本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS SDK for PHP 版本 3 来管理 Amazon EC2 实例
以下示例演示如何:
-
使用描述 Amazon EC2 实例DescribeInstances。
-
使用对正在运行的实例启用详细监控MonitorInstances。
-
使用禁用对正在运行的实例的监控UnmonitorInstances。
-
使用您之前停止过的 Amazon EBS 支持的 AMI。StartInstances
-
使用停止由 Amazon EBS 支持的实例。StopInstances
-
使用请求重启一个或多个实例RebootInstances。
的所有示例代码都可以在此AWS SDK for PHP处找到 GitHub
凭证
运行示例代码之前,请配置您的 AWS 凭证,如 凭证 中所述。然后导入 AWS 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';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $instanceIds = ['InstanceID1', 'InstanceID2']; $monitorInstance = 'ON'; if ($monitorInstance == 'ON') { $result = $ec2Client->monitorInstances([ 'InstanceIds' => $instanceIds ]); } else { $result = $ec2Client->unmonitorInstances([ 'InstanceIds' => $instanceIds ]); } var_dump($result);
启动和停止 实例
导入
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $action = 'START'; $instanceIds = ['InstanceID1', 'InstanceID2']; if ($action == 'START') { $result = $ec2Client->startInstances([ 'InstanceIds' => $instanceIds, ]); } else { $result = $ec2Client->stopInstances([ 'InstanceIds' => $instanceIds, ]); } var_dump($result);
重启实例
导入
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $instanceIds = ['InstanceID1', 'InstanceID2']; $result = $ec2Client->rebootInstances([ 'InstanceIds' => $instanceIds ]); var_dump($result);