适用于弹性负载均衡器的 AWS PHP SDK


AWS PHP SDK for Elastic Load Balancer

我是 AWS 的新手,需要一个 AWS PHP SDK 代码来获取附加到 ELB 的实例数。

Amazon Web Services (AWS( 在文档方面确实大放异彩。您可以在适用于 PHP 的 AWS 开发工具包登录页面上找到许多有用的信息;具体来说,您需要查看 API 参考。

在 API 参考中,您将看到有关所有常见嫌疑人的文档:EC2、S3 甚至 ELB。

ELB 客户端支持一系列方法。但是您感兴趣的是DescribeLoadBalancers。您传入负载均衡器的名称,它会吐回它的描述 - 如果您传递多个负载均衡器名称,则为多个。描述格式显示在文档中:

 [
    'LoadBalancerDescriptions' => [
        [
            // ...
            'Instances' => [
                [
                   'InstanceId' => '<string>',
                ],
                // ...
            ],
            // ...
        ],
        // ...
    ],
    'NextMarker' => '<string>',
]

您要查找的是负载均衡器描述中的实例数组。这是实例类型的结构数组。最后,使用该结构数组,您可以获得所需的 InstanceId

很抱歉我令人困惑的问题,尽管我能够在您的帮助下弄清楚。 :)以下使它起作用 -

$credentials = 新凭据("访问密钥"、"密钥"(;

        $client = ElasticLoadBalancingClient::factory(array(
                    'credentials' => $credentials,
                    'region' => 'us-west-2'
        ));
        $model = $client->describeLoadBalancers();
        $ELBdata = array();
        for($i=0; $i<sizeof($model); $i++)
        {
            $output = array();
            $output['ELBName'] = $model['LoadBalancerDescriptions'][$i]['LoadBalancerName'];
            $output['DNSName'] = $model['LoadBalancerDescriptions'][$i]['DNSName'];
            $output['instanceCount'] = count($model['LoadBalancerDescriptions'][$i]['Instances']);
            array_push($ELBdata,$output);
        }
        $ELB["status"] = true;
        $ELB["data"] = $ELBdata;
        echo json_encode($ELB);