AWS Iam 命令,在终端中正常工作但在 Laravel/PHP AWS SDK 中不工作
AWS Iam commands, Working correct in terminal and not working in 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"
},
}
在 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();
出现以下错误(见附件)。
可能是什么原因,因为相同的配置在终端中工作正常,但在 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 区域进行调用。
我正在使用 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"
},
}
在 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();
出现以下错误(见附件)。
可能是什么原因,因为相同的配置在终端中工作正常,但在 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 区域进行调用。