もくじ
前提
DynamoDBにテーブル作成済みでレコードも存在する前提です。
ライブラリ
baophamを利用します。
DynamoDBをLaravelのEloquentライクに使えるようになるライブラリです。
GitHub - baopham/laravel-dynamodb: Eloquent syntax for DynamoDB
手順
1.インストール
Laravelのディレクトリで実行してください。
$ composer require baopham/dynamodb
2.service providerを追記
'providers' => [ : BaoPham\DynamoDb\DynamoDbServiceProvider::class, : ];
3.ファイル作成
AWSの認証情報を取得するためのファイルです。
$ php artisan vendor:publish --provider 'BaoPham\DynamoDb\DynamoDbServiceProvider'
4.AWSのアクセスキー確認(作成)
アクセスキーを持ってる場合は、その際にDLしたCSVから確認できます。
アクセスキーを所持していない場合作成します。
AWS management consoleにIAMユーザーでログインし下記の通り進んでください。
IAM > ユーザ > セキュリティ認証情報 > アクセスキーの作成
5.envファイル
DYNAMODB_CONNECTION=aws // ★ DYNAMODB_REGION={リージョン} // ap-northeast-1 など DYNAMODB_KEY={アクセスキー} DYNAMODB_SECRET={シークレットキー}
DYNAMODB_CONNECTION
(★)は 3で作成した/config/dynamodb.php
内の connections
のいずれかを設定します。
存在しない値を設定すると接続できません。
これで接続自体は完了します。
DynamoDBから取得
1. モデル作成
$ php artisan make:model User
2.作成したモデルにinclude
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use BaoPham\DynamoDb\DynamoDbModel; // ★A class Users extends DynamoDbModel // ★B { use HasFactory; protected $table = 'Users'; // DynamoDBのテーブル名 }
BaoPhamのモデルを使用するため★Aにuse
します。
さらにそれを継承するため★Bを書き換えます。
3.コントローラー
あとはコントローラーでモデルを呼び出してEloquentのように使うことが可能です。
use App\Models\Users; class UserController extends Controller { public function index() { $result = Users::all(); dump($result) }
完了!