DynamoDB
Squid は Amazon DynamoDB データベースに接続し、Squid アプリケーションのデータソースとして利用できます。
DynamoDB は AWS の serverless NoSQL key-value database です。Squid を使用すると、Squid Client SDK を通じて DynamoDB tables を query し、AI agents が DynamoDB data を使用して質問に回答できるようになります。
DynamoDB connector は現在、read operations をサポートしています。Queries と document lookups は標準の Squid query API を通じて動作しますが、inserts、updates、deletes、native queries はまだサポートされていません。
DynamoDB database を Squid に接続するには、次の手順を完了してください。
- Squid Console を開き、DynamoDB で使用するアプリケーションを選択します。
- Connectors tab をクリックし、次に Available connectors をクリックします。
- DynamoDB connector を選択します。
- 次の構成情報を入力します。
- Connector ID - 簡潔で、connector を識別しやすい ID を選択します。これは後で変更できません。
- Region - DynamoDB tables の AWS region。例:
us-east-1。 - Access Key ID - tables へのアクセス権を持つ IAM user の access key ID。
- Secret Access Key - 対応する secret access key。非公開に保つため、Squid Secrets に保存します。
- Endpoint URL - 任意。DynamoDB Local 用の
http://localhost:9001などの custom endpoint。 - Tables to Process - 任意。schema discovery に含める tables の comma-separated list。regex pattern を指定するには forward slashes を使用します(例:
/^temp_.*/)。すべての tables を含めるには空のままにします。
必要な IAM permissions
IAM user には、公開したい tables に対して次の permissions が必要です。
dynamodb:ListTablesdynamodb:DescribeTabledynamodb:Scandynamodb:GetItem
connector は read-only のため、write permissions は不要です。
schema の検出
connector を追加した後、Schema tab を使用して tables を検出します。Squid は各 table の key schema を読み取り、最大 100 items を sample して、残りの attributes とその types を推定します。保存する前に、生成された schema を調整できます。
data の query
Client SDK から DynamoDB tables を query する方法は、他の Squid collection と同じで、connector ID を渡します。
const users = await squid
.collection<User>('users', 'YOUR_DYNAMODB_CONNECTOR_ID')
.query()
.eq('status', 'active')
.snapshot();
注意すべき DynamoDB 固有の動作がいくつかあります。
- Queries は server-side filters を使用した DynamoDB scans として実行されるため、secondary indexes は必要なく、使用されません。大きな tables では、広範な queries は遅くなり、read capacity を消費する可能性があります。
- limit が設定されていない場合、queries は最大 1000 items を返します。
- Results は sort されません。DynamoDB は scan order で items を返します。
- ID による documents の lookup は、simple(partition-key-only)primary key を持つ tables でサポートされています。composite(partition + sort)key を持つ tables は、document ID で query できません。
database の保護
default では security rules が必須であり、production environment では、それらなしで connector へのアクセスを許可しないことが重要です。database data の保護について詳しくは、security rules documentation を参照してください。
Datatype mapping
次の table は、DynamoDB と Squid の datatype mapping を示しています。
| DynamoDB Type | Squid Type |
|---|---|
| S (string) | string |
| N (number) | number |
| B (binary) | string (base64) |
| BOOL | boolean |
| L (list) | array |
| M (map) | map |
| SS, NS, BS (sets) | array |
| NULL | null |
Squid で data を操作する方法については、Client SDK documentation を参照してください。