2016-01-21 112 views
4

我正在使用操作系统:Ubuntu 14.04并安装了AWSCLI使用终端的软件包。当运行AWS Iam命令时,它运行良好,运行时为 。AWS Iam命令,在终端中正常工作并且不在Laravel/PHP中工作AWS开发工具包

例如:我跑这个命令 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,我配置密钥,朱鸿,大区等(同配置在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)); 

回答

4

IAM是一项全球性服务,并非特定区域。但是,在使用api时,您必须使用us-east-1区域进行呼叫。