PHP 的 AWS SDK - 没有显示负载均衡器
AWS SDK for PHP - No load balancers are showing
我正在使用 PHP 的 AWS SDK 查询负载均衡器的所有健康实例。我尝试使用 describeInstanceHealth 方法从我的 ELB 中获取所有健康的实例,结果发现它说没有我提供的名称的活动负载均衡器。
然后我决定使用 describeLoadBalancers 来查看它在内部使用的名称,结果发现该函数根本没有返回任何负载平衡器。我有 3 个活动负载平衡器,在我键入此内容时正在使用它们。
这是我的代码的相关部分:
<?php
require 'aws/aws-autoloader.php';
use Aws\ElasticLoadBalancing\ElasticLoadBalancingClient;
...
$client = ElasticLoadBalancingClient::factory([
'key' => env('ACCESS_KEY'),
'secret' => env('SECRET'),
'region' => env('REGION')
]);
$result = $client->describeLoadBalancers();
var_dump($result);
我得到的输出如下:
object(Guzzle\Service\Resource\Model)#106 (2) {
["structure":protected]=> NULL ["data":protected]=> array(2) {
["LoadBalancerDescriptions"]=> array(0) { }
["ResponseMetadata"]=> array(1) {
["RequestId"]=> string(36) "e6e7b0a4-7880-11e7-bb72-995ab0ed2a69"
}
}
}
请注意,LoadBalancerDescriptions
键有一个空数组,而它应该包含所有活动负载平衡器的描述。
我的猜测是 IAM 角色配置不正确,我的用户看不到负载均衡器,但我不知道附加 user/access 密钥的方法正在使用负载平衡器。
如何让负载均衡器对我正在进行的 API 调用可见?
我正在使用 PHP 5.6.31.
事实证明,ELB 支持两种类型的负载均衡器:Classic 和Application。 AWS SDK V1 不支持应用程序负载均衡器。我必须升级 SDK 并使用 describeTargetHealth 来获取负载均衡器中每个实例的实例 ID。
通过使用 ELBv2 API 和 describeTargetHealth
方法解决了这个问题。
我正在使用 PHP 的 AWS SDK 查询负载均衡器的所有健康实例。我尝试使用 describeInstanceHealth 方法从我的 ELB 中获取所有健康的实例,结果发现它说没有我提供的名称的活动负载均衡器。
然后我决定使用 describeLoadBalancers 来查看它在内部使用的名称,结果发现该函数根本没有返回任何负载平衡器。我有 3 个活动负载平衡器,在我键入此内容时正在使用它们。
这是我的代码的相关部分:
<?php
require 'aws/aws-autoloader.php';
use Aws\ElasticLoadBalancing\ElasticLoadBalancingClient;
...
$client = ElasticLoadBalancingClient::factory([
'key' => env('ACCESS_KEY'),
'secret' => env('SECRET'),
'region' => env('REGION')
]);
$result = $client->describeLoadBalancers();
var_dump($result);
我得到的输出如下:
object(Guzzle\Service\Resource\Model)#106 (2) {
["structure":protected]=> NULL ["data":protected]=> array(2) {
["LoadBalancerDescriptions"]=> array(0) { }
["ResponseMetadata"]=> array(1) {
["RequestId"]=> string(36) "e6e7b0a4-7880-11e7-bb72-995ab0ed2a69"
}
}
}
请注意,LoadBalancerDescriptions
键有一个空数组,而它应该包含所有活动负载平衡器的描述。
我的猜测是 IAM 角色配置不正确,我的用户看不到负载均衡器,但我不知道附加 user/access 密钥的方法正在使用负载平衡器。
如何让负载均衡器对我正在进行的 API 调用可见?
我正在使用 PHP 5.6.31.
事实证明,ELB 支持两种类型的负载均衡器:Classic 和Application。 AWS SDK V1 不支持应用程序负载均衡器。我必须升级 SDK 并使用 describeTargetHealth 来获取负载均衡器中每个实例的实例 ID。
通过使用 ELBv2 API 和 describeTargetHealth
方法解决了这个问题。