Aws php sdk 从实例配置文件元数据服务器检索凭据时出错。连接到169.254.169.254端口80失败:没有到主机的路由
我正在尝试使用aws php sdk的Route53创建一个子域 但我一次又一次地犯这个错误: [2017-06-16 12:17:00]本地。错误:Aws\Exception\CredentialsException:从实例配置文件元数据服务器检索凭据时出错 (cURL错误7:无法连接到169.254.169.254端口80:没有到主机的路由(请参阅)),位于/var/www/html/test/vendor/aws/aws-sdk-php/src/Credentials/InstanceProfileProvider.php:79 我使用的是aws sdk php版本:3.29 “aws/aws sdk php”:“^3.29” 这是我写的代码Aws php sdk 从实例配置文件元数据服务器检索凭据时出错。连接到169.254.169.254端口80失败:没有到主机的路由,aws-php-sdk,Aws Php Sdk,我正在尝试使用aws php sdk的Route53创建一个子域 但我一次又一次地犯这个错误: [2017-06-16 12:17:00]本地。错误:Aws\Exception\CredentialsException:从实例配置文件元数据服务器检索凭据时出错 (cURL错误7:无法连接到169.254.169.254端口80:没有到主机的路由(请参阅)),位于/var/www/html/test/vendor/aws/aws-sdk-php/src/Credentials/InstancePr
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通信。凭据称为访问密钥ID
和秘密访问密钥
正如AWS文件中强调的那样
如果在实例化客户端对象时未向其提供凭据,SDK将尝试在您的环境中查找凭据
根据您的日志,SDK似乎仍在从您的环境中提取存储在~/.aws/credentials中的凭据,而没有使用提供的密钥
请确保您的环境变量中有访问密钥和密钥
$ less ~/.aws/credentials
[default]
aws_access_key_id = key
aws_secret_access_key = secret
或
清除配置缓存以强制使用客户端实例化中声明的显式凭据。以防它们被缓存
php-artisan-config:cache
另请参阅本文档,了解如何正确设置客户端
如果您使用
php-artisan-config:cache
确保除了配置文件(config/*)之外,不要在任何地方使用env()helper访问env变量。避免在刀片模板中使用env()助手。这是因为,在运行上述命令后调用env()helper将返回null
而是使用一个用于访问环境值的。如果config文件夹下的单独配置文件不适用于该供应商包/服务,那么config/services.php是指向env值的好地方
php-artisan-config:cache命令将加快应用程序的速度,因为会缓存环境变量,因此建议在生产环境中使用该命令
有关更多详细信息,请参阅