laravel - AWS Iam 命令,在终端中正常工作,但在 Laravel/PHP AWS SDK 中不起作用

标签 laravel amazon-web-services laravel-5.1 aws-sdk aws-cli

我使用操作系统:Ubuntu 14.04 并使用终端安装了 AWSCLI 软件包。 运行 AWS Iam 命令时,它工作正常。

例如:我运行了这个命令 aws iam 列表用户 并得到以下结果

{
    "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"
        },
}

在 Laravel 5.1 中使用 AWS SDK 时,我配置了 Key、Secret、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 区域进行调用。

关于laravel - AWS Iam 命令,在终端中正常工作,但在 Laravel/PHP AWS SDK 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919186/

相关文章:

php - 何时重新生成 session ID Laravel?

php - 未设置 SendGrid 类别

ios - 如何实现自定义 AWSCredentialsProvider

nginx - 调用未定义的函数 bzdecompress PHP

php - Laravel:在使用 Query Builder 或 Eloquent ORM 时对每次插入/更新执行一些任务

php - 如何处理laravel登录错误,用户名与密码不同

amazon-web-services - Spring Boot - 不同的系统(eureka、zuul、ribbon、nginx)用于什么?

java - 我应该如何使用区域获取 aws 区域名称

ssl-certificate - getstream.io SSL 证书无法获取本地颁发者证书

php - laravel 5.1 基于用户位置的动态谷歌地图