我是 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);