从实例配置文件元数据服务器检索凭据时出错。无法连接到169.254.169.254端口80:没有到主机的路由

问题描述:

我试图用aws-php-sdk创建一个使用Route53的子域。从实例配置文件元数据服务器检索凭据时出错。无法连接到169.254.169.254端口80:没有到主机的路由

但我一次又一次收到此错误:

[2017年6月16日12时17分00秒] local.ERROR:AWS \异常\ CredentialsException:错误检索从实例配置文件元数据服务器的凭据。在/ var/www/html/test/vendor/aws/aws-sdk-php/src /目录中发现无法连接到主机的路由(参见http://curl.haxx.se/libcurl/c/libcurl-errors.html),导致无法连接到169.254.169.254端口80:证书/ InstanceProfileProvider.php:79

我使用AWS-SDK-PHP版本:3.29 “AWS/AWS-SDK-PHP”: “^ 3.29”

这是我写的代码

use Aws\Route53\Route53Client; 

$client = Route53Client::factory(array(
     'region' => 'us-east-1', 
     'version' => '2013-04-01', 
     'credentials ' => array('key'=>'AWS_KEY', 
       'secret'=>'AWS_SECRET_KEY') 
    )); 


     $result = $client->changeResourceRecordSets(array(
     // HostedZoneId is required 
     'HostedZoneId' => 'ROUTER_53_HOSTED_ZONE_ID', 
     // ChangeBatch is required 
     'ChangeBatch' => array(
       // Changes is required 
       'Changes' => array(
        array(
         // Action is required 
         'Action' => 'CREATE', 
         // ResourceRecordSet is required 
         'ResourceRecordSet' => array(
          // Name is required 
          'Name' => 'test2.xyz.co.in.', 
          // Type is required 
          'Type' => 'A', 
          'TTL' => 600, 
          "AliasTarget"=> array(
           "HostedZoneId"=> "LOAD_BALANCER_ZONE_ID", 
           "DNSName"=> "LOAD_BALANCER_DOMAIN_NAME", 
           "EvaluateTargetHealth"=> false 
          ), 
         ), 
        ), 
       ), 
     ), 
    )); 

帮助将是可观的。提前致谢。

这个问题很旧,但我想删除一个答案,以防某人有类似的问题。

AWS PHP SDK需要凭据才能与AWS通信。凭证被称为access key IDsecret access key

由于AWS文档

If you do not provide credentials to a client object at the time of its instantiation, the SDK will attempt to find credentials in your environment.

在强调根据你的日志似乎SDK仍然是拉动从您的环境的凭据都存储在〜/ .aws /凭证,而不是使用提供的钥匙。

请确保您的环境变量中具有访问密钥和密钥。

$ less ~/.aws/credentials 

[default] 
aws_access_key_id = key 
aws_secret_access_key = secret 

或者

清除配置缓存使用在客户端的实例声明的明确凭据力。以防他们被缓存。

php artisan config:cache

也请参阅本文档中有关如何正确设置客户端。

https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/credentials.html