使用Amplify设置TTL时间
简述
使用graphql-ttl-transformer,如果在Amplify中使用schema.graphql管理DynamoDB,可以在属性之后加上@ttl,以设置TTL(生存时间)的属性,例如以下示例。
type Message @model @key(fields: ["fromUserId", "toUserId"]) {
fromUserId: String!
toUserId: String!
message: String!
ttl: AWSTimestamp! @ttl
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
如果在这个状态下执行amplify push,将会在相应的属性(例如上面的例子中的ttl)中设置TTL。
此外,可以设置TTL的类型仅限于AWSTimestamp和Int。
引入
npm安装 –save graphql-ttl-transformer 后,在 ./amplify/backend/api/<API名>/transform.conf.json 文件中追加如下的transformers设置。
"transformers": [
"graphql-ttl-transformer"
]
请注意
在使用Amplify Console等进行CI/CD时,我认为在构建过程中需要执行amplifyPush –simple命令。因为在amplifyPush时需要graphql-ttl-transformer,所以需要在amplifyPush之前执行npm install或npm ci。
如果没有完成这个步骤,在构建时将返回“无法导入自定义转换器模块”。