Php 有没有办法用Laravel AWS SDK设置DynamoDB Local?
我在尝试让DynamoDB本地启动并运行我当前的laravel项目时遇到了问题 Laravel AWS SDK允许在.env文件中设置一些密钥来更改密钥/机密/区域,但似乎不支持更改端点,这是使用DynamoDB Local所需的(密钥选项在此处的自述文件中:) 关于如何设置Dynamo DB Local,常规PHP SDK的解决方案似乎非常简单:Php 有没有办法用Laravel AWS SDK设置DynamoDB Local?,php,laravel,amazon-web-services,amazon-dynamodb,dynamo-local,Php,Laravel,Amazon Web Services,Amazon Dynamodb,Dynamo Local,我在尝试让DynamoDB本地启动并运行我当前的laravel项目时遇到了问题 Laravel AWS SDK允许在.env文件中设置一些密钥来更改密钥/机密/区域,但似乎不支持更改端点,这是使用DynamoDB Local所需的(密钥选项在此处的自述文件中:) 关于如何设置Dynamo DB Local,常规PHP SDK的解决方案似乎非常简单: $client = DynamoDbClient::factory(array( 'profile' => 'default',
$client = DynamoDbClient::factory(array(
'profile' => 'default',
'region' => 'us-west-2', #replace with your desired region
'endpoint' => 'http://localhost:8000'
));
有了Laravel AWS SDK,我就无法直接访问DynamoDB客户机,而不需要修改生产DynamoDB连接所需的一些内容
例如,使用Laravel AWS SDK,DynamoDB可通过以下方式访问:
$dynamoDB = AWS::get('DynamoDb');
我真的在寻找一种可以改变的环境变量,这样我就可以轻松地在生产和本地之间切换,但我找不到它
有什么简单的方法可以使用Laravel AWS SDK设置DynamoDB Local吗?我最终实现这一点的方法是创建自己的环境变量,然后检查它是否在我获得DynamoDB客户端时设置
AWS::get('DynamoDb')
上面返回的DynamoDBClient将自动使用AWS配置
因此,我检查了env变量,如果设置了env变量,则返回带有本地配置的DynamoDBClient。我必须使用Aws DynamoDBClient类:
use Aws\DynamoDb\DynamoDbClient;
然后我做了:
if( env("DYNAMODB_LOCAL")) {
$this->client = DynamoDbClient::factory(array(
'key' => 'YOUR_KEY', // Doesn't actually matter what it is since it won't be verified
'secret' => 'YOUR_SECRET', // Doesn't actually matter what it is since it won't be verified
'profile' => 'default',
'region' => 'us-west-2', #replace with your desired region
'endpoint' => 'http://localhost:8000' // Replace if your local endpoint is different than default
));
}
else {
$this->client = AWS::get('DynamoDb');
}
如果Laravel AWS SDK为DynamoDB Local提供了某种简单的环境配置,那就太好了,但这似乎适合我的使用