Prismarine Skill 提供在 EasySAM 与 Python 应用中使用 Prismarine(模型驱动 DynamoDB ORM)的规范与模式。
用途:定义和管理 DynamoDB 模型与客户端代码,使模型在预处理阶段被自动识别,生成 CloudFormation 模板中的表、索引、TTL 与流触发器等资源。
主要能力与规则:模型必须定义在名为 models.py 的文件中,不得写在 init.py;Cluster('MyPrefix') 的前缀必须与 resources.yaml 中的主前缀一致;不得在 easysam.yaml 手工定义 DynamoDB 表;@c.index 装饰器须置于 @c.model 之上;EasySAM 项目不单独运行 prismarine generate-client,客户端代码由 easysam generate/deploy 自动生成;多环境栈的表带环境后缀时需配置 access-module: common.dynamo_access 并提供 get_dynamo_access(),消费者代码不得手工拼表名或直接调用底层 _put_item,应使用生成的模型方法;条件写入通过 put() 的 ConditionExpression 实现,用 prismarine.runtime 的 DbConditionFailed 捕获;modelling 模式需与父类匹配,typed-dict 模式继承 TypedDict,pydantic 模式继承 BaseModel。
使用方式:在 resources.yaml 的 prismarine 段配置 default-base、access-module、modelling、tables;随后运行 uv run easysam --environment dev generate . 与 uv run easysam --environment dev --aws-profile <profile> deploy . 即可;CRUD 通过生成的 prismarine_client 执行,如 Model.put()、Model.get()、索引的 ByEmail.list(),并可用 DbNotFound、DbConditionFailed 处理异常。
适用场景:使用 EasySAM 管理 AWS Lambda 与 DynamoDB、需要模型驱动表结构生成的项目。
限制:资料未提供收费、价格、支持平台与性能数据;standalone prismarine generate-client CLI 仅适用于非 EasySAM 独立项目。