silverstripe/dynamodb

SilverStripe DynamoDB 集成。

安装数: 275,319

依赖项: 7

建议者: 0

安全: 0

星标: 4

关注者: 12

分支: 14

开放问题: 2

类型:silverstripe-vendormodule

5.0.1 2023-09-18 03:20 UTC

README

CI

此模块允许将 SilverStripe 会话存储在 DynamoDB 中。

要求

  • SilverStripe 5.0+
  • PHP 8.1+

安装

将以下自定义仓库添加到您的 composer.json 中

composer require silverstripe/dynamodb

DynamoDB 会话

如果您想将会话存储在 DynamoDB 中,请在 .env 中设置所需的环境变量

# The name of the DynamoDB table to store sessions in
AWS_DYNAMODB_SESSION_TABLE=mysession

# The region that the DynamoDB table will live in (in this example here it uses Sydney)
AWS_REGION_NAME=ap-southeast-2

一旦设置好,此模块将配置 DynamoDB 并将其注册为会话处理器。

在您实际使用之前,您需要创建一个用于存储会话的表。请按照 AWS SDK for PHP 文档 中的说明操作。

重要:您需要在您的表中设置一个用于垃圾回收的 TTL 属性。模块不提供自动化的垃圾回收功能。

在 AWS 之外使用 DynamoDB

有时您可能想在本地开发环境中测试 DynamoDB 会话是否工作。您可以通过定义 AWS_ACCESS_KEYAWS_SECRET_KEY 来实现这一点。请不要在 EC2 实例的环境文件中定义这些常量,因为凭证由 AWS 内部的 IAM 角色自动处理。

# The AWS access key and secret. This is optional if you've configured an instance with an IAM role
# https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
# Note that AWS_ACCESS_KEY can only contain alphanumeric characters 
# https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html#DynamoDBLocal.DownloadingAndRunning.title
AWS_ACCESS_KEY=myaccesskey
AWS_SECRET_KEY=mysecret

本地测试

您可以通过 DynamoDB Local 来本地模拟 DynamoDB,以便更容易地进行开发。

设置环境常量。请注意,实际的访问密钥和区域被忽略,只需要定义即可。

AWS_DYNAMODB_SESSION_TABLE=mysession
AWS_ACCESS_KEY=myaccesskey
AWS_SECRET_KEY=mysecret
AWS_DYNAMODB_ENDPOINT=http://localhost:8000
AWS_REGION_NAME=ap-southeast-2

下载 DynamoDB Local 并启动它 - 它将在 http://localhost:8000 下可用。

现在使用 AWS CLI Tools 与您本地的 DynamoDB 进行交互。

配置用户(可选)

您可以使用 AWS CLI 工具配置一个用户。如果您有环境变量被收集的问题,请使用此方法。

aws configure set aws_access_key_id myaccesskey
aws configure set aws_secret_access_key myaccesskey
aws configure set default.region ap-southeast-2

创建表

aws dynamodb create-table --table-name mysession --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url http://localhost:8000

列出表

aws dynamodb list-tables --endpoint-url http://localhost:8000

列出所有会话

aws dynamodb scan --table-name mysession --endpoint-url http://localhost:8000

删除所有会话(之后使用创建表来重置)

aws dynamodb delete-table --table-name mysession --endpoint-url http://localhost:8000

贡献

您想贡献吗?太好了,请参阅 CONTRIBUTING.md 指南。

许可证

此模块在 BSD 3-Clause 许可证下发布,请参阅 license.md