结合 Amazon EC2 与 适用于 PHP 的 Amazon SDK 版本 3 来使用弹性 IP 地址
弹性 IP 地址是专为动态云计算设计的静态 IP 地址。弹性 IP 地址与您的 Amazon Web Services 账户 关联。它是公有 IP 地址,可从 Internet 访问。如果您的实例没有公有 IP 地址,则可以将弹性 IP 地址与您的实例关联以启用与 Internet 的通信。
以下示例演示如何:
-
使用 DescribeInstances 描述一个或多个实例。
-
使用 AllocateAddress 获取弹性 IP 地址。
-
使用 AssociateAddress 将弹性 IP 地址与实例关联。
-
使用 ReleaseAddress 释放弹性 IP 地址。
适用于 PHP 的 Amazon SDKGitHub 上提供了
凭证
运行示例代码之前,请配置您的 Amazon 凭证,如 通过适用于 PHP 的 Amazon SDK 版本 3 使用 Amazon 进行身份验证 中所述。然后导入 适用于 PHP 的 Amazon SDK,如 安装适用于 PHP 的 Amazon SDK 版本 3 中所述。
描述实例
导入。
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' ]); $instanceId = 'InstanceID'; $allocation = $ec2Client->allocateAddress(array( 'DryRun' => false, 'Domain' => 'vpc', )); $result = $ec2Client->associateAddress(array( 'DryRun' => false, 'InstanceId' => $instanceId, 'AllocationId' => $allocation->get('AllocationId') )); var_dump($result);
发布地址
导入。
require 'vendor/autoload.php';
示例代码
$ec2Client = new Aws\Ec2\Ec2Client([ 'region' => 'us-west-2', 'version' => '2016-11-15', 'profile' => 'default' ]); $associationID = 'AssociationID'; $allocationID = 'AllocationID'; $result = $ec2Client->disassociateAddress([ 'AssociationId' => $associationID, ]); $result = $ec2Client->releaseAddress([ 'AllocationId' => $allocationID, ]); var_dump($result);