【发布时间】:2017-07-05 01:22:23
【问题描述】:
我正在尝试使用 Yii 2 框架、托管在 AWS 上的 DynamoDB 数据库和适用于 PHP 的 AWS 开发工具包创建一个简单的 Web 应用程序。我只是在数据库中保存/检索电影详细信息。
(为了在此处复制代码,我不会复制我真正的 AWS 密钥/秘密。)
当我像这样创建 Aws\Sdk 对象时,一切都按我的意愿工作:
$sdk = new Aws\Sdk([
'region' => 'us-west-2',
'version' => 'latest',
'credentials' => [
'key' => 'KEYKEYKEYKEYKEYKEYKE',
'secret' => 'SECRETSECRETSECRETSECRETSECRETSECRETSECR'
]
]);
$dynamodb = $sdk->createDynamoDb();
但我想通过 Yii::createObject() 方法利用 Yii 的 默认配置,这样我就不必在创建的每个地方都指定区域、版本和凭据Aws\Sdk 对象。所以,根据Yii documentation,我已经保存到我的应用程序配置中:
\Yii::$container->set('Aws\Sdk', [
'region' => 'us-west-2',
'version' => 'latest',
'credentials' => [
'key' => 'KEYKEYKEYKEYKEYKEYKE',
'secret' => 'SECRETSECRETSECRETSECRETSECRETSECRETSECR'
]
]);
现在无论我在哪里创建 Aws\Sdk 对象,我的代码都如下所示:
$sdk = Yii::createObject('Aws\Sdk');
$dynamodb = $sdk->createDynamoDb();
但是,当我这样做时,我从 AWS 收到关于“缺少所需的客户端配置选项”的 InvalidArgumentException。如果我在分配var_dump() $sdk 变量后立即对其进行分配,我可以看到该对象具有所需的区域、版本和凭据属性,但是我分配$dynamodb 变量的下一行会引发异常。
我希望有人能告诉我哪里出错了。
【问题讨论】:
标签: php amazon-web-services yii2 amazon-dynamodb aws-sdk