AWS Iam命令,在终端中正常工作,而不在Laravel / PHP AWS SDK中工作

我正在使用OS:Ubuntu 14.04并使用终端安装AWSCLI包.
在运行AWS Iam命令时,它的工作正常.

例如:我运行了这个命令
aws iam list-users
并得到以下结果

{
    "Users": [
        {
            "Arn": "arn:aws:iam::3**16****332:user/xyz",
            "CreateDate": "2014-09-29T14:21:25Z",
            "UserId": "AIDAJY*******MW**W",
            "Path": "/",
            "UserName": "xyz"
        },
        {
            "Arn": "arn:aws:iam::34****044**2:user/abcxyz",
            "CreateDate": "2014-02-07T21:08:53Z",
            "UserId": "AIDAJ******JML**V6Y",
            "Path": "/",
            "UserName": "abcxyz"
        },
}

使用AWS SDK与Laravel 5.1时,我配置Key,Secrect,Region等(与AWSCLI包中配置相同)

在Laravel 5.1中运行此代码时

$Iam    =   \App::make('aws')->createClient('Iam');
$result =   $Iam->listUsers();

echo "<pre>";
  print_r($result);
die();

出现以下错误(请参阅附件). enter image description here

可能是什么原因,因为相同的配置在终端中工作正常而不是SDK.我也尝试过SQS,它工作正常,请参阅下面的代码.

$obj    =   \App::make('aws')->createClient('Sqs');
$queue  =   $obj->getQueueUrl(['QueueName'=>'sms-demo']);
$queueUrl=   $queue->get('QueueUrl');

$result = $obj->receiveMessage(
                array('QueueUrl'=> $queueUrl));
最佳答案
IAM是一项全球服务,而不是特定于地区的服务.但是,在使用api时,您必须使用us-east-1区域进行呼叫.

转载注明原文:AWS Iam命令,在终端中正常工作,而不在Laravel / PHP AWS SDK中工作 - 代码日志