我正在尝试创建一种以编程方式启动/停止我的EC2实例的方法。这是我正在使用的代码:
<?php
$ec2 = new \Aws\Ec2\Ec2Client([
'credentials' => [
'key' => 'KEY_HERE',
'secret' => 'SECRET_HERE'
],
'region' => env('AWS_REGION', 'us-west-2'),
'version' => 'latest',
'ua_append' => [
'L5MOD/' . AwsServiceProvider::VERSION,
]
]);
$result = $ec2->describeInstanceStatus([
'InstanceIds' => ['i-c21a366e']
]);
?>
当然我使用的是实际的密钥,而不是'KEY_HERE'和'SECRET_HERE'。
我收到此错误,您可以在此屏幕截图中看到:
我想提一下,如果我使用S3服务,一切正常。我只对EC2服务有这个问题。
知道可能出现什么问题吗?
答案 0 :(得分:0)
我终于知道发生了什么,我能够解决它。
看起来AWS正在使用服务器时钟来授权访问,我需要安装ntp服务并对其进行更新,以便正确同步时钟。
我通过运行:
安装了ntp服务器sudo apt-get install ntp
然后我用这些命令更新了服务:
sudo service ntp stop
sudo ntpd -gq
sudo service ntp start
问题已解决。