Php 有没有办法用Laravel AWS SDK设置DynamoDB Local?

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',

我在尝试让DynamoDB本地启动并运行我当前的laravel项目时遇到了问题

Laravel AWS SDK允许在.env文件中设置一些密钥来更改密钥/机密/区域,但似乎不支持更改端点,这是使用DynamoDB Local所需的(密钥选项在此处的自述文件中:)

关于如何设置Dynamo DB Local,常规PHP SDK的解决方案似乎非常简单:

$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提供了某种简单的环境配置,那就太好了,但这似乎适合我的使用