如何将 Dynamo DB 与 Laravel 一起使用


how to use dynamo db with laravel?

你好,我是dynamo db和laravel的新手。在互联网上搜索后,我发现了很多为 laravel 设置 dynamo db 的方法,我尝试了每种方法。但是在 Laravel 中设置 FOR 使用 dynamo DB 后,我找不到任何教程或任何示例代码,以便我可以进一步使用它。我用于dynamo db设置的一些站点链接:

https://github.com/aws/aws-sdk-php-laravel

https://github.com/baopham/laravel-dynamodb

https://github.com/aws/aws-sdk-php

http://www.techigniter.in/tutorials/dynamodb-session-driver-for-laravel-5/

还有更多的网站,都使用自己不同的方法,但对我的帮助不够。

其实很简单。您可以将此SDK用于Laravel:https://github.com/aws/aws-sdk-php-laravel

此链接可以帮助您了解如何使用它:https://stackoverflow.com/a/32594321/9845807

use AWS;
use Config;
public function dynamoDBConnect()
    {
        //Fetching credentials for DynamDB
        $config =  Config::get('aws');
        //Inserting value with tableName: "Logs" and columnName: "userId"
        $client = AWS::createClient('DynamoDb');
        $iterator = $client->getIterator('Query', array(
            'TableName'     => 'Logs',
            'KeyConditions' => array(
                'userId' => array(
                    'AttributeValueList' => array(
                        array('N' => '1202')
                    ),
                    'ComparisonOperator' => 'EQ'
                )
            )
        ));
        //Fetching the records.
        $result = $client->getItem(array(
            'ConsistentRead' => true,
            'TableName' => 'Logs',
            'Key'       => array(
                'userId'   => array('N' => '1201'),
                'Name'    => array('S' => 'Name string')
            )
        ));
    }

有 2 个主动支持的软件包(可以)充当 Laravel 的服务提供商:

  • https://github.com/baopham/laravel-dynamodb
  • https://github.com/kitar/laravel-dynamodb

两者都有用法示例,并提供用于创建可以使用 Eloquent 方法或使用查询生成器的模型的选项。

完整文档: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.PHP.html

以下方法将连接到 DynamoDB 并检索数据。将ACCESS_KEY、SECRET_KEY、区域TABLE_NAME更改为您的。

我的 DynamoDB 数据如下所示, {'2019-11-05':'12:30-13:00', '2019-11-05':'13:30-14:00'}

public function getDataFromDynamoDb() {
$credentials = new Aws'Credentials'Credentials(ACCESS_KEY, SECRET_KEY);
$client = new Aws'Sdk([
    'version' => 'latest',
    'region' => REGION,
    'credentials' => $credentials
]);
$dynamodb = $client->createDynamoDb();
$marshaler = new Marshaler();
$tableName = 'TABLE_NAME';
$eav = $marshaler->marshalJson('{":Date": "2019-11-05"}');
$params = [
    'TableName' => $tableName,
    'KeyConditionExpression' => '#Date = :Date',
    'ExpressionAttributeNames'=> [ '#Date' => 'Date' ],
    'ExpressionAttributeValues'=> $eav
];
try {
    $result = $dynamodb->query($params);
    foreach ($result['Items'] as $marketData) {
        echo $marshaler->unmarshalValue($marketData['Date']) . ': ' .
            $marshaler->unmarshalValue($marketData['Value']) . "'n";
    }
} catch (DynamoDbException $e) {
    echo "Unable to query:'n";
    echo $e->getMessage() . "'n";
}}